第一生活网

feof函数可用于二进制文件(feof函数)

郝莎洁
导读 大家好,我是小一,我来为大家解答以上问题。feof函数可用于二进制文件,feof函数很多人还不知道,现在让我们一起来看看吧!1、feof是一个c

大家好,我是小一,我来为大家解答以上问题。feof函数可用于二进制文件,feof函数很多人还不知道,现在让我们一起来看看吧!

1、feof是一个c语言函数,既可用以判断二进制文件又可用以判断文本文件。feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为1,否则为0。

2、EOF是文件结束标志的文件。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,ASCⅡ代码的范围是0到255,不可能出现-1,因此可以用EOF作为文件结束标志。

3、当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志。为解决这一个问题,ASCI C提供一个feof函数,用来判断文件是否结束。

4、扩展资料:

5、feof的正确写法:

6、在VC里,只有当文件位置指针(fp->_ptr)到了文件末尾,然后再发生读/写操作时,标志位(fp->_flag)才会被置为含有_IOEOF。然后再调用feof(),才会得到文件结束的信息。

7、因此,如果运行如下程序:

8、char c;

9、while(!feof(fp))

10、{

11、c = fgetc(fp);

12、printf("%X/n", c); 

13、}

14、会发现多输出了一个FF,原因就是在读完最后一个字符后,fp->flag仍然没有被置为_IOEOF,因而feof()仍然没有探测到文件结尾。直到再次调用fgetc()执行读操作,feof()才能探测到文件结尾。这样就多输出了一个-1(即FF)。

15、正确的写法应该是:

16、char c;

17、c = fgetc(fp);

18、while(!feof(fp))

19、{

20、printf("%X/n", c); 

21、c = fgetc(fp);

22、} 

23、参考资料来源:搜狗百科-feof

本文到此讲解完毕了,希望对大家有帮助。