C 用户输入
用户输入
你已经了解到 printf()
用于在 C 中 **输出值**。
要获取 **用户输入**,可以使用 scanf()
函数
示例
输出用户输入的数字
// 创建一个整数变量,用于存储我们从用户那里获取的数字
int myNum;
// 提示用户输入一个数字
printf("输入一个数字:\n");
// 获取并保存用户输入的数字
scanf("%d", &myNum);
// 输出用户输入的数字
printf("你的数字是:%d", myNum);
运行示例 »
多个输入
scanf()
函数还允许进行多个输入(以下示例中的整数和字符)
示例
// 创建一个 int 和一个 char 变量
int myNum;
char myChar;
// 提示用户输入一个数字和一个字符
printf("输入一个数字和一个字符,然后按回车键:\n");
// 获取并保存用户输入的数字和字符
scanf("%d %c", &myNum, &myChar);
// 打印数字
printf("你的数字是:%d\n", myNum);
// 打印字符
printf("你的字符是:%c\n", myChar);
运行示例 »
获取字符串输入
你还可以获取用户输入的字符串
示例
输出用户的姓名
// 创建一个字符串
char firstName[30];
// 提示用户输入一些文本
printf("输入你的名字:\n");
// 获取并保存文本
scanf("%s", firstName);
// 输出文本
printf("你好 %s", firstName);
运行示例 »
注意:在 scanf()
中使用字符串时,必须指定字符串/数组的大小(我们在示例中使用了 30,这是一个很大的数字,但这样可以确保它至少可以存储足够的字符来存放名字),并且不必使用引用运算符 (&
)。
但是,scanf()
函数有一些限制:它将空格(空格、制表符等)视为终止字符,这意味着它只能显示一个单词(即使你输入多个单词)。例如
示例
char fullName[30];
printf("输入你的全名:\n");
scanf("%s", &fullName);
printf("你好 %s", fullName);
// 输入你的全名:John Doe
// 你好 John
从上面的示例中,你可能期望程序打印 "John Doe",但它只打印了 "John"。
因此,在处理字符串时,我们通常使用 fgets()
函数来 **读取一行文本**。请注意,你必须包含以下参数:字符串变量的名称、sizeof
(字符串名) 和 stdin
示例
char fullName[30];
printf("输入你的全名:\n");
fgets(fullName, sizeof(fullName), stdin);
printf("你好 %s", fullName);
// 输入你的全名:John Doe
// 你好 John Doe
运行示例 »
使用 scanf()
函数获取单个单词作为输入,使用 fgets()
获取多个单词。