在C中使用EOF和getchar()进行字符计数
可能重复:在C中使用EOF和getchar()进行字符计数,c,windows,eof,getchar,C,Windows,Eof,Getchar,可能重复: 我是C语言的新手,试图弄清楚EOF和getChar()是如何工作的 #包括 main() { 整数=0; while(getchar()!=EOF) 数字++; printf(“%d”,数字); } 当我输入一些随机字符时,程序什么也不做,我认为它永远不会退出while循环。为什么呢?我正在Windows 7上使用代码块。因为您没有发送EOF字符。“EOF”代表“文件结束”;控制台输入(称为“标准输入”)是文件的一种特殊情况。但是为了表示这个特殊文件已经结束,您需要发送一个特殊的
我是C语言的新手,试图弄清楚EOF和getChar()是如何工作的
#包括
main()
{
整数=0;
while(getchar()!=EOF)
数字++;
printf(“%d”,数字);
}
当我输入一些随机字符时,程序什么也不做,我认为它永远不会退出while循环。为什么呢?我正在Windows 7上使用代码块。因为您没有发送
EOF
字符。“EOF”代表“文件结束”;控制台输入(称为“标准输入”)是文件的一种特殊情况。但是为了表示这个特殊文件已经结束,您需要发送一个特殊的信号。您可以在Windows上按Ctrl+Z(出于某种原因,后跟Enter)获得此效果。EOF是文件结束的标记。键入CTRL+Z或更改条件以在键盘上键入字符退出循环。因为键盘无法键入EOF。:)
#include <stdio.h>
main()
{
int number = 0;
while(getchar() != EOF)
number++;
printf("%d", number);
}