feof用法重点详解(易被误用判断文件结束!!!)

简介: feof用法重点详解(易被误用判断文件结束!!!)

feof的误用:

feof


用于判断文件指针是否指向文件末尾

当指向文件尾,返回1;否则返回0;

(可用于判断二进制文件/文本文件读取结束以后真实的结束情况 )




在文件读取过程中,不能用feof函数的返回值直接用来判断文件的是否结束!!!


例如:用while(!feof(fp))来一直读取文件直到文件结束


feof的正确使用场景:feof应当用于,在文件读取已经结束的时候,判断是读取失败导致的结束还是遇到文件尾正常的结束(与ferror搭配)


判断文件读取是否结束:

对于文本文件:


fgetc判断返回值是否为EOF

fgets判断返回值是否为NULL

对于二进制文件:


fread判断返回值是否小于实际要读的个数


image.png

image.png

参考资料:其中的例子也说明了feof的正确使用场景

image.png

相关文章
|
1月前
|
存储 编译器 C语言
【C/C++ 函数返回的奥秘】深入探究C/C++函数返回:编译器如何处理返回值
【C/C++ 函数返回的奥秘】深入探究C/C++函数返回:编译器如何处理返回值
125 3
|
4月前
|
算法
‘/’ 和 ‘%’ 在编程中的作用【附加练习题】
‘/’ 和 ‘%’ 在编程中的作用【附加练习题】
|
6月前
|
存储 编译器 Go
Go语言隐藏的接口陷阱:nil值判断的各种误区
Go语言隐藏的接口陷阱:nil值判断的各种误区
74 0
|
11月前
|
NoSQL Java 数据库
解释afterPropertiesSet方法的用处
解释afterPropertiesSet方法的用处
|
11月前
|
存储
符合类型相关知识点
符合类型相关知识点
44 0
|
数据采集 Linux Python
再谈文件读写:判断文件的几种方法及其优劣对比
学习是循序渐进的过程,若能建立知识点间的联系,进行系统性的学习,那将更有助于效果。阅读这篇文章,你将读到如下内容: 1、判断文件的方法(try语句、os模块、pathlib模块)2、以上几种方法的优劣对比
133 0
定义一个有用的 MyBaseException
import java.util.ArrayList; import java.util.List; public class MyBaseException extends Exception { public MyBaseExceptio...
816 0
|
存储
上拉电阻和下拉电阻的用处和区别
上拉电阻和下拉电阻二者共同的作用是:避免电压的“悬浮”,造成电路的不稳定。 一、上拉电阻如图所示:   1、概念:将一个不确定的信号,通过一个电阻与电源VCC相连,固定在高电平;  2、上拉是对器件注入电流,灌电流;  3、当一个接有上拉电阻的IO端口设置为输入状态时,它的常态为高电平。
6803 1