Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中使用EOF和getchar()进行字符计数_C_Windows_Eof_Getchar - Fatal编程技术网

在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);
}