【问题标题】:Verify that the expression getchar() != EOF is 0 or 1 [duplicate]验证表达式 getchar() != EOF 是 0 还是 1 [重复]
【发布时间】:2015-05-22 14:19:57
【问题描述】:

问题

验证表达式getchar() != EOF01

接近

我试图编写一个程序,它首先接受EOF 以外的输入,因此将打印值1。接下来它将以EOF 作为输入并打印0

/* Program to verify that the value of the expression getchar() != EOF is 0 or 1 */

#include <stdio.h>

int main()
{
    printf("Inputting something other than EOF, value of the expression is %d\n", getchar() != EOF);
    printf("Inputting EOF, value of the expression is %d\n", getchar() != EOF);
    printf("It is verified that the expression getchar() != EOF is 0 or 1.\n");
    return  0;
}`

问题:

但是当我给出输入时,它不会打印第一行并等待下一个输入。它直接打印所有行。如何让第二行接受下一个输入?

【问题讨论】:

    标签: c eof getchar


    【解决方案1】:

    这里的问题是由于getchar()的工作原理。它只会在按下 ENTER 键后开始读取,在这种情况下,下一个 getchar()(在第二个 printf() 中)将读取 newline(\n ) 来自输入缓冲区,并且不会等待任何用户输入。

    解决方案:在第二个 printf() 之前再添加一个 getchar() 调用。这将吃掉\n

    【讨论】:

      猜你喜欢
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      • 2018-02-26
      • 2012-12-16
      • 2019-05-06
      • 1970-01-01
      • 2015-09-21
      • 1970-01-01
      相关资源
      最近更新 更多