C 用户输入
用户输入
你已经学过,在 C 语言中,printf() 用于输出值。
要获取用户输入,您可以使用scanf()函数
示例
输出用户输入的数字:
// 创建一个整型变量,用于存储从用户那里获取的数字。
int myNum;
// 请用户输入一个数字
printf("Type a number:
");
// 获取并保存用户输入的数字
scanf("%d", &myNum);
// 输出用户输入的数字。
printf("Your number is: %d", myNum);
运行示例 »
多输入
scanf() 函数也支持多输入(例如,以下示例中的一个整数和一个字符):
示例
// 创建一个整数变量和一个字符变量
int myNum;
char myChar;
// 请用户输入一个数字和一个字符。
printf("Type a number AND a character and press enter: ");
// 获取并保存用户输入的数字和字符
scanf("%d %c", &myNum, &myChar);
// 打印该数字
printf("Your number is: %d", myNum);
// 打印字符
printf("Your character is: %c", myChar);
运行示例 »
接收字符串输入
您还可以获取用户输入的字符串:
示例
输出用户名:
// 创建一个字符串
char firstName[30];
// 请用户输入一些文本
printf("Enter your first name: ");
// 获取并保存文本
scanf("%s", firstName);
// 输出文本
printf("Hello %s", firstName);
运行示例 »
注意: 当在 scanf() 中处理字符串时,您必须指定字符串/数组的大小(在示例中,我们使用了一个非常大的数字,30,但至少这样我们就能确定它能够存储足够多的字符来表示名字),而且您不必使用引用运算符( & )。
然而,scanf() 函数有一些局限性:它将空格(空白字符、制表符等)视为终止字符,这意味着它只能显示单个单词(即使您输入多个单词)。例如:
示例
char fullName[30];
printf("Type your full name: ");
scanf("%s", &fullName);
printf("Hello %s", fullName);
// Type your full name: John Doe
// Hello John
根据上面的例子,你可能会期望程序打印出"John Doe",但它实际上只打印出"John"。
因此,在处理字符串时,我们经常使用 fgets() 函数来 读取一行文本。请注意,您必须包含以下参数:字符串变量的名称,sizeof(string_name), 和 stdin:
示例
char fullName[30];
printf("Type your full name: ");
fgets(fullName, sizeof(fullName), stdin);
printf("Hello %s", fullName);
// Type your full name: John Doe
// Hello John Doe
运行示例 »
使用 scanf() 函数获取单个单词作为输入,使用 fgets() 函数获取多个单词作为输入。

