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

在下面这个函数中
#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啊!

幕布斯6054654
浏览 121回答 3
3回答

收到一只叮咚

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

回首忆惘然

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

慕桂英546537

在C++中定义这个EOF是-1的,这是合理的,因为ASCII码最小的是0,控制的话,在windows中是用ctrl + Z(再敲回车),来控制的。
打开App,查看更多内容
随时随地看视频慕课网APP