EOF的解释

原创 2013年12月03日 15:03:34

EOF 是End Of File 的缩写。 
在C 语言中,它是在标准库中定义的一个宏。 

人们经常误认为EOF 是从文件中读取的一个字符( 牢记)。

其实,EOF 不是一个字符, 它被定义为是int 类型的一个负数(比如 -1), EOF 也不是文件中实际存在的内容。
EOF 表示,读文件到了结尾(这一状态,这种状态可以用feof() 来检测)或 I/O 操作中的读、写错误(通常可以用ferror() 来检测)以及其它一些关联操作的错误状态。
 

// 当输入缓冲区有数据可读时,一次从输入缓冲区读取一个字节
getchar // 如果读到文件末,返回EOF. 

#include <stdio.h>

int main(void) 
{
    char c;
    while((c=getchar())!=EOF)
    {
        putchar(c);
        printf("  run to here\n");
    }
    return 0; 
}

 

运行结果如下,

1234
1  run to here
2  run to here
3  run to here
4  run to here

  run to here

可知,getchar会一直阻塞,直到 '本次输入结束(如,行回车)' 或 '结束输入(文件结束)'(即,输入缓冲区有数据可读)。
'本次输入结束' 或 '结束输入' 时,getchar的内部 文件IO读函数 才会读取标准输入的所有数据到输入缓冲区。

之后,getchar会逐一读取缓冲区数据,直至全部读完。

EOF的含义与scanf的返回值

我学习C语言的时候,遇到的一个问题就是EOF。 它是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。 ...
  • trochiluses
  • trochiluses
  • 2013年12月29日 17:23
  • 4396

fstream中eof的机制

一个测试程序: 一个简单的复制文件程序 #include using namespace std; int main(){ fstream in("aaa.txt",ios::in)...
  • xumingjie1658
  • xumingjie1658
  • 2012年05月07日 20:54
  • 3340

Linux脚本中用户自定义终止符-EOF

Linux脚本中用户自定义终止符-EOF的思考
  • simon_dong618
  • simon_dong618
  • 2013年09月14日 10:40
  • 29769

perl函数说明(eof)

eof FILEHANDLE eof() eof 如果下一次对 FILEHANDLE 的读取返回文件结束(end-of-file)或者是 FILEHANDLE 没有打开,那么这个函数将返回真。...
  • u014703817
  • u014703817
  • 2014年06月20日 11:12
  • 1756

终止符EOF在windows平台中如何输入

来自:http://zhidao.baidu.com/question/293245134.html?fr=qrl&cid=93&index=3 在windows平台,一般模拟eof的输入是...
  • jo_say
  • jo_say
  • 2012年01月21日 15:37
  • 4964

C语言中的文件中止标志EOF如何输入

要重拾c语言了,没想到连这么简单的问题都不记得了。在 Windows/MS DOS 系统下,输入 EOF 的方法是:新起一行,按住 ctrl ,然后再按下 z ;在 Unix/Linux 下,是 ct...
  • bl1988530
  • bl1988530
  • 2011年05月06日 17:17
  • 2051

EOF是什么?

今天面试遇到一个问题,文件中的EOF到底是个什么东西,我回答说是-1,然后被面试官鄙视了,纠结了很久,没有回答出来,今天的面试算是挂了吧,不过得把这个知识的空缺补上,特意回来查了下,将别人的博客转载过...
  • liushu1231
  • liushu1231
  • 2014年03月06日 21:41
  • 1732

EOF

>> 关于文件结束符EOF EOF 是 End Of File 的缩写。 在C语言中,它是在标准库中定义的一个宏。 人们经常误认为 EOF 是从文件中读取的一个字符(牢记)。其实,EOF...
  • s200820212
  • s200820212
  • 2013年08月26日 08:30
  • 1527

C/C++ ifstream之eof()

 用ifstream的eof(),竟然读到文件最后了,判断eof还为false。网上查找资料后,终于解决这个问题。参照文件:http://tuhao.blogbus.com/logs/21306687...
  • rebel_321
  • rebel_321
  • 2009年12月02日 22:58
  • 14029

由控制台EOF想到

控制台进行不同输入,输出结果
  • ldqsmile
  • ldqsmile
  • 2017年03月03日 23:20
  • 194
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:EOF的解释
举报原因:
原因补充:

(最多只允许输入30个字)