确定 EOF 表达式

Determining EOF expression

我需要验证表达式 getchar() ! = EOF0 还是 1。 我当前的代码:

#include <stdio.h>
int main (int argc, char *argv[])
{
    int c;
    while (( c= getchar()) != EOF) 
    {
        printf("%d ", c != EOF);
        putchar(c);
    }
    printf("\n%d\n", c != EOF);
}

当我尝试 运行 我得到

98980980
1 91 81 91 81 01 91 81 01 

我不确定我是否理解正确。

编辑:

好的问题实际上是“如何生成 EOF” 解决方案是按 ctrl+D。

我不太确定你是否想要这个答案,但据我了解,你要查找的信息是

  • 如果您输入任何 有效字符 getchar() != EOF 会产生 1。
  • 如果您按 CTRL+D(在 linux 上),或 CTRL+Z(在 windows 上),它将生成 EOF 并且 getchar() != EOF 产生 0.