c - 确定 EOF 表达式

标签 c eof getchar

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

#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。

关于c - 确定 EOF 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29344880/

相关文章:

c - 衰减数组和内存释放

c - 安装第 3 方库以在我的 C 程序中使用

c : 4x14bit + 1x8bit within a 64 bit 'container' 中的自定义数据类型

c - 仅通过 EOF 结束 while 循环一次

objective-c - 在 OS X 中以编程方式模拟/切换 CAPS LOCK

python - 为什么我必须输入 ctrl-d 两次?

c++ - 从重定向到 STDIN 的文件中检测 C++ 中的 EOF

c - C 代码中的问题

将 getchar 与字符进行比较会返回警告并给我错误的代码

c - 这个C函数有什么问题? (printf() 和 getchar())