首页 > 解决方案 > C语言中EOF的使用

问题描述

输出

代码:

#include<stdio.h>

main()
{
  int c;
  printf("Enter any charachter!: ");
  while((c = getchar()) != EOF) {
    putchar(c);
    printf("%d\n", (c = getchar()) != EOF);
  }
}

我试图在 C 中测试 EOF,但我遇到了困难。我想获得 EOF 的值,发现它是-1.

getchar()我使用and编写了一个简单的程序putchar().

我添加了程序和输出的屏幕截图。输出对我来说没有任何意义。

如您所见,我正在尝试获取一个字符并使用getchar()and显示它putchar()。我正在尝试打印出 while 循环中使用的条件的值。要检查 EOF,我是故意-1输入的。putchar()打印出来-1,然后最后的 printf 语句让我感到困惑。我输入-1forgetchar()1显示的意思 c 不等于 EOF。但我认为-1是EOF。
而且我不明白为什么11还会显示。我正在使用codeblocksIDE。
请帮我。提前致谢。

标签: c

解决方案


EOF不是字符,也不是从流中读取的。它只是指示该流上没有更多输入的返回值。您可以通过在 *nix 或Windows 上EOF键入来发出信号。CtrlDCtrlZ


推荐阅读