0

我对几乎相同的两段代码有疑问,但我不知道为什么它们的行为不同。

这是第一个:

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

这是第二个:

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

在第一种情况下,程序最后仍然等待输出。

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

这对我来说似乎很不清楚。你能帮我吗 ?

提前致谢。

4

1 回答 1

0

看来你的解释是颠倒的。第一个程序似乎跳过了第二个程序,scanf因为可能会读取后面跟着数字序列的任何空格或换行符。但是第二个程序会因为调用而等待你的输入fgetc(stdin)

于 2015-01-13T00:18:11.823 回答