【发布时间】:2022-06-13 22:41:32
【问题描述】:
我正在尝试编写一个简单的程序来读取一个整数和一个字符串,然后将两者都打印到标准输出。理想情况下,执行应如下所示:
Input the number.
> 10
Input the string.
> a string
number: 10
string: a string
但是,当我运行该程序时,它会在调用 scanf() 后冻结,直到提供更多输入。
Input the number.
> 10
a string
Input the string.
>
number: 10
string: a string
为什么在调用 fgets() 之前等待输入?
#include <stdio.h>
int main()
{
int number;
char string[32];
printf("Input the number.\n> ");
scanf("%d\n", &number);
printf("\nInput the string.\n> ");
fgets(string, 32, stdin);
printf("\nnumber: %d\nstring: %s\n", number, string);
}
【问题讨论】:
-
从 scanf 中删除 '\n'