你已经知道了printf()
习惯于输出值在C.
要得到用户输入,您可以使用scanf()
功能:
输出用户输入的数字:
// Create an integer variable that will store the number we get from the user
int myNum;
// Ask the user to type a number
printf("Type a number: \n");
// Get and save the number the user types
scanf("%d", &myNum);
// Output the number the user typed
printf("Your number is: %d", myNum);
运行示例 »
这个scanf()
函数还允许多个输入(以下示例中的整数和字符):
// Create an int and a char variable
int myNum;
char myChar;
// Ask the user to type a number AND a character
printf("Type a number AND a character and press enter: \n");
// Get and save the number AND character the user types
scanf("%d %c", &myNum, &myChar);
// Print the number
printf("Your number is: %d\n", myNum);
// Print the character
printf("Your character is: %c\n", myChar);
运行示例 »
您还可以获取用户输入的字符串:
输出用户名:
// Create a string
char firstName[30];
// Ask the user to input some text
printf("Enter your first name: \n");
// Get and save the text
scanf("%s", firstName);
// Output the text
printf("Hello %s", firstName);
运行示例 »
笔记:当使用字符串时scanf()
,您必须指定字符串/数组的大小(我们在示例中使用了一个非常高的数字,30,但至少我们确定它将为名字存储足够的字符),并且您不必使用引用运算符 (&
)。
但是,那scanf()
函数有一些限制:它将空格(空格、制表符等)视为终止字符,这意味着它只能显示单个单词(即使您键入许多单词)。例如:
char fullName[30];
printf("Type your full name: \n");
scanf("%s", &fullName);
printf("Hello %s", fullName);
// Type your full name: John Doe
// Hello John
从上面的示例中,您希望程序打印"John Doe",但它只打印"John"。
这就是为什么在使用字符串时,我们经常使用fgets()
功能为读取一行文字。请注意,您必须包含以下参数:字符串变量的名称,sizeof
(字符串名称), 和stdin
:
char fullName[30];
printf("Type your full name: \n");
fgets(fullName, sizeof(fullName), stdin);
printf("Hello %s", fullName);
// Type your full name: John Doe
// Hello John Doe
运行示例 »
使用scanf()
函数获取单个单词作为输入,并使用fgets()
对于多个单词。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!