EOF 和 feof()

来源:互联网 发布:信号模拟软件 编辑:程序博客网 时间:2024/04/29 10:29

问题:今天遇到一个问题,程序在读了文件中就没有退出来,便gdb调试。后来才发现是是没有找到文件结束符。


资源:feof() 有两个返回值,如果是遇到文件结束符,返回的是1.否者是0.

            在C的标准库中,EOF(end of file)也是表示文件结束符。但是以EOF作为文件结束符的必须是文本文件。文本文件都是字符的ASCII存放。ASCII值的范围是0-255,不会出现-1,所以可以用-1在表示文件结束。

           但是在如果以二进制的的形式存放文件,就会出现-1.这时就不能用EOF作为文件的结束符。

           为了解决这个问题,C提供了一个feof()函数,用来判断文件是否结束。

          while(!feof(fp)) 

          {

           file.push_back( fgetc(fp) );

           }

    

0 0
原创粉丝点击