scanf%c和fgetc(stdin)的影响

时间:2014-04-02 14:10:37

标签: stdin scanf fgetc

我有两个代码几乎相同的问题,但我不知道为什么他们的行为不一样。

这是第一个:

printf("Type something : );
scanf("%d", &nb);
scanf("%c", &c);

这是第二个:

printf("Type something : );
scanf("%d", &nb);
scanf("%c", &c);
fgetc(stdin);

在第一种情况下,程序仍在等待输出结束。

在第二个中,程序跳过第二个scanf指令。

我似乎很不清楚。你能帮我吗 ?

提前致谢。

1 个答案:

答案 0 :(得分:0)

看来你的解释是相反的。第一个程序似乎可以跳过第二个scanf,因为可以读取后跟一系列数字的任何空格或换行符。但由于呼叫fgetc(stdin),第二个程序将等待您的输入。