feof()函数读取文件和EOF结束符标志问题
2010-05-01 10:50
363 查看
windows下的txt文本文件中的内容都是ASC Ⅱ代码值的形式存放的。众所周知,ASC 2码的范围是在0至255.对于其他范围的值是无法识别的,因此像-1这样的值是不能转化成相应的字符存在于文本文件当中的。但是对于二进制文件来说,-1确实是可以出现的。
feof()函数在c/c++中是用来判断当前要操作的文件是否结尾,如果文件已结尾,返回值为1,否则就返回0.它判断文件是否结尾的原理是与数据库中的eof()函数是不一样的。feof()是根据读取文件的内容是否为空来判断是否结尾;而eof()函数是根据当前的文件指针的位置是否已经到达文件的末尾。这就是说feof()是根据内容来判断,而efo()是根据位置来判断。
EOF是文件结束符标志,它的值是-1
定义:#define EOF (-1)
定义:#define _IOEOF Ox0010
定义:#define feof(_stream) ((_stream)->flag&_IOEOF)
feof()根据上一次对文件操作读取的内容来判断是否结尾了。feof()读取完文件内最后一个字符后,还要继续执行操作,读取下一个位置的内容,如果为空说明已到了文件尾。这是会设置_stream->flag为_IOEOF.才使feof()返回1.
EOF只能用于判断文本文件是否结束的标志,此时检测读取的字符是否等于EOF来判断文件结束就不会出现feof()判断的问题(目标文件会比源文件对出一个字节的内容)。有时候EOF不能用来代替feof()因为有肯能读取文件出错也会返回-1.
feof()函数在c/c++中是用来判断当前要操作的文件是否结尾,如果文件已结尾,返回值为1,否则就返回0.它判断文件是否结尾的原理是与数据库中的eof()函数是不一样的。feof()是根据读取文件的内容是否为空来判断是否结尾;而eof()函数是根据当前的文件指针的位置是否已经到达文件的末尾。这就是说feof()是根据内容来判断,而efo()是根据位置来判断。
EOF是文件结束符标志,它的值是-1
定义:#define EOF (-1)
定义:#define _IOEOF Ox0010
定义:#define feof(_stream) ((_stream)->flag&_IOEOF)
feof()根据上一次对文件操作读取的内容来判断是否结尾了。feof()读取完文件内最后一个字符后,还要继续执行操作,读取下一个位置的内容,如果为空说明已到了文件尾。这是会设置_stream->flag为_IOEOF.才使feof()返回1.
EOF只能用于判断文本文件是否结束的标志,此时检测读取的字符是否等于EOF来判断文件结束就不会出现feof()判断的问题(目标文件会比源文件对出一个字节的内容)。有时候EOF不能用来代替feof()因为有肯能读取文件出错也会返回-1.
相关文章推荐
- feof()函数读取文件和EOF结束符标志问题
- C++ 输入流 cin/ ifstream/ istringstream 及几个相关函数在遇到文件结束符EOF时的行为
- 关于EOF(文件结束符)问题的体会
- 判断文件结束有两种方法:EOF和feof()
- 关于EOF(文件结束符)问题的体会
- 文件输入中的good()函数读取不到最后一个字符的问题
- python核心编程学习笔记-2016-08-02-01-读取文件的函数中的文件指针问题
- pandas的read_csv()函数读取的文件路径问题
- ObjectOutputStream读取文件多个对象时报出EOFException问题
- MySQL恢复和UTF文件BOM标志读取问题
- 关于EOF(文件结束符)问题的体会
- ifstream(一)之 eof() 函数——解决读取文件最后一个数据多读一次的方法
- gets() scanf()之间的区别和文件结束标志EOF
- c语言中getchar函数的用法,涉及EOF文件结束符的问题
- Getchar函数从标准输入读取读取一个字符并返回它的值。如果输入中不再存在任何字符,函数就会返回常量EOF(在stdio.h中定义),用于提示文件的结尾。
- 习题8.3 编写一个函数,其唯一的形参和返回值都是istream&类型.该函数一直读取到到大文件结束符为止,,,,,,并返回该流
- C语言学习10:结构体,结构体应用,联合用法,枚举,fopen函数使用,fseek,ftell的作用和文件结束符EOF,数组和文件交换数据,个人信息管理。
- c语言中getchar函数的用法,涉及EOF文件结束符的问题
- feof()函数和EOF结束符的区别与联系
- 使用feof()函数判断文件是否结束