可能重复:
Why doesn't getchar() recognise return as EOF in windows console?
我是C的新手,试图弄清楚EOF和getChar()是如何工作的。
#include <stdio.h>
main()
{
int number = 0;
while(getchar() != EOF)
number++;
printf("%d", number);
}
当我输入一些随机字符时,程序没有做任何事情,我认为它永远不会脱离那个循环。这是为什么?我在Windows 7上使用CodeBlocks。
答案 0 :(得分:1)
因为您没有发送EOF
个字符。 “EOF”代表“文件结束”;控制台输入(称为“标准输入”)是文件的特例。但为了表示此特殊文件已结束,您需要发送一个特殊信号。您可以通过按Ctrl + Z(在某些原因后按Enter键)在Windows上获得此效果。