在C语言中经常用EOF和feof()来判断文件的结束,现将有关用法总结如下:
2017-06-07 20:14阅读:
在C语言中经常用EOF和feof()来判断文件的结束,现将有关用法总结如下:
- 定义
EOF是End Of File 的缩写,是c语言中标准库中定义的宏,定义为:#defineEOF (-1);
feof()用于测试流文件的结束,有宏和函数两种定义:
宏定义: #define feof(_stream)((_stream)->_flag & _IOEOF),其中_IOEOF的为:#define _IOEOF 0x0010
函数定义:intfeof( FILE *stream ); - 说明
EOF的值为-1,是int类型数据,在32位系统中,可以表示为0xFFFFFFFF; EOF 不是一个字符,也不是文件中实际存在的内容。EOF不但能表示读文件到了结尾这一状态,它还能表示 I/O 操作中的读、写错误(可以用 ferror() 来检测)以及其它一些关联操作的错误状态;
feof()只用于测试流文件的结束,当到达结尾时,返回非0;当文件内部位置指针指向文件结束时,并未立即置位FILE结构中的文件结束标记,只有再执行一次读文件操作,才会置位结束标志,此后调用feof才会返回为真。
函数如fgetc或getc返回EOF并不一定表示文件结束,当读取文件出错时也会返回EOF,仅凭返回-1就认为文件结束是错误的;正因
