因为你程序写得不好。getchar()在好几个地方用到,但是只有一个地方判断EOF。
站在用户的角度思考问题,与客户深入沟通,找到巩义网站设计与巩义网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、成都网站制作、企业官网、英文网站、手机端网站、网站推广、域名注册、雅安服务器托管、企业邮箱。业务覆盖巩义地区。
char last_ch = EOF;
int sum = 0;
while ((ch = getchar()) != EOF)
{
if (ch == ' ')
{
if (last_ch != ' ')
{
++sum; /* last char is not blank, add sum */
}
}
last_ch = ch;
}
计算机中检测文件结尾方法的一种方法:在文件的末尾放特殊的字符标记结尾。
在C语言中,使用getchar()读取文件,检测到末尾时会返回一个特殊值,即返回EOF。使用
scanf()函数时同样返回EOF。
我们不需要定义EOF,EOF在头文件stdio.h中定义,通常EOF被定义为-1。
在进行键盘输入时,同样可以使用EOF作为输入的结尾条件,在Windows中就使用快捷键Ctrl+z,作为文件结尾信号。如下边的示例:
上述示例中,在while循环中使用getchar()函数,不断读取字符,将读取到的字符赋值给ch变量,直到输入EOF字符结束,这里的EOF不能输入EOF三个字符,在Windows中,当我们输入Ctrl+z时,就会识别为EOF,就会结束输入。
EOF为End Of File的缩写,在操作系统中表示资料源无更多的资料可读取。
DO while not EOF(1)解释:判断当eof(1)的值为true时停止do循环。
使用EOF是为了避免因试图在文件结尾处进行输入而产生的错误。
直到到达文件的结尾,EOF函数都返回False。对于为访问Random或Binary而打开的文件,直到最后一次执行的Get语句无法读出完整的记录时,EOF都返回False。
扩展资料:
EOF(filenumber):必要的filenumber参数是一个Integer,包含任何有效的文件号
EOF 指示当前记录位置位于 Recordset 对象的最后一个记录之后。
BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前。
EOF一般是指结尾,比如:SQL 中指针到最后一个 Rs.EOF = True 时,eof是判断SQL取出来的记录是否到末尾了;而bof是判断是不是在记录最前面。