使用EOF和getchar()在C中进行字符计数

时间:2012-06-05 15:18:20

标签: c windows eof getchar

  

可能重复:
  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。

1 个答案:

答案 0 :(得分:1)

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