为了账号安全,请及时绑定邮箱和手机立即绑定

请问在一般的情况下EOF又是怎么控制的呢?

请问在一般的情况下EOF又是怎么控制的呢?

幕布斯6054654 2022-05-26 15:11:11
在下面这个函数中#include<stdio.h>int main(void){int c,nl;nl=0;while((c=getchar())!=EOF)if(c=='\n')++nl;printf("%d\n",nl);}这里的EOF具体是怎么控制的?看到网上说有EOF=13的,这不是回车么?但是我这个回车显然不能算作EOF啊!
查看完整描述

3 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

EOF表示文件结束符,如果你是由键盘取得EOF,那么window系统ctrl+z表示EOF,在Linux/UNIX下则是ctrl+d。所以你这个程序,如果你输入avfdfdfgdfg最后按ctrl+z就会退出循环了。

查看完整回答
反对 回复 2022-05-30
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

EOF不是回车, 是C里面规定的一个值,表示输入流的结束
具体值视操作系统而定, 有时可以是-1
所以用EOF判断文件结尾是不安全的, 正规编程不使用
更安全的做法是用feof()函数

查看完整回答
反对 回复 2022-05-30
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

在C++中定义这个EOF是-1的,这是合理的,因为ASCII码最小的是0,控制的话,在windows中是用
ctrl + Z(再敲回车),来控制的。

查看完整回答
反对 回复 2022-05-30
  • 3 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信