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分析,适用于有缺测值的数据

  • 2014年09月10日 16:41
  • 22KB
  • 下载

SVD EOF入门手册(英)

  • 2014年10月09日 15:27
  • 824KB
  • 下载

socket close方法的作用(close后 远端会得到这个信息 返回-1 也就是eof)

今天开发一个Socket通讯agent,Java 程序中启动一个ServerSocket,用来与shell脚本中"nc"命令通讯并交换数据.ServerSocket可以收到"nc"发送的数据,但是"n...
  • G7N3F
  • G7N3F
  • 2016年06月06日 21:06
  • 2015

fortran 加权 EOF 代码

  • 2014年02月04日 18:43
  • 30KB
  • 下载

EOF分解小程序

  • 2015年10月23日 11:04
  • 282KB
  • 下载

判断文件结束的几种方法和eof()函数

看下面一段代码:ofstream ofs("a.txt"); int n = 1; while (--n) { //不进入循环体 ofs...

经验正交函数分析方法(EOF分析)

  • 2014年08月27日 10:30
  • 683KB
  • 下载

C++如何判断输入的结束 ACM中无输入结束提示时如何判断到达EOF

1.while((scanf"%d,%d",&m,&n)==2)   {   //...   } 2.while((scanf"%d,%d",&m,&n)!=EOF)  ...

getchar函数和EOF总结

  • 2009年12月05日 15:49
  • 5KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:EOF的解释
举报原因:
原因补充:

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