0

可能重复:
为什么 getchar() 不能在 Windows 控制台中将返回识别为 EOF?

我是 C 的新手,想弄清楚 EOF 和 getChar() 是如何工作的。

#include <stdio.h>

main()
{

int number = 0;
while(getchar() != EOF)
     number++;

printf("%d", number);
}

当我键入一些随机字符时,程序什么也不做,我认为它永远不会退出那个 while 循环。这是为什么?我在 Windows 7 上使用 CodeBlocks。

4

1 回答 1

1

因为你没有发送一个EOF字符。“EOF”代表“文件结束”;控制台输入(称为“标准输入”)是文件的一种特殊情况。但是为了表示这个特殊的文件已经结束,你需要发送一个特殊的信号。您可以在 Windows 上通过按 Ctrl+Z 来获得这种效果(由于某种原因,后跟 Enter)。

于 2012-06-05T15:19:55.650 回答