【问题标题】:scanf %c and fgetc(stdin) influencescanf %c 和 fgetc(stdin) 影响
【发布时间】:2014-05-13 21:32:06
【问题描述】:

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

这是第一个:

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

这是第二个:

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

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

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

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

提前致谢。

【问题讨论】:

    标签: stdin scanf fgetc


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-16
      • 2015-06-26
      • 2018-08-21
      • 2015-05-28
      • 2012-08-28
      • 2013-11-30
      相关资源
      最近更新 更多