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

相关文章
|
消息中间件 SQL JSON
自建MQTT迁移阿里云物联网平台指南
2020年是5G大规模商用的元年,使用阿里云物联网平台在产业爆发前打造一套安全可靠的业务架构,更能解放人力专注业务开发!
16681 0
|
机器学习/深度学习 人工智能 自然语言处理
从前端智能化看“低代码/无代码”
什么是低代码/无代码开发?业界对于低代码/无代码开发是否存在其他不同的理解?低代码开发和无代码开发之间的区别是什么?
从前端智能化看“低代码/无代码”
|
10月前
|
canal NoSQL 关系型数据库
Redis应用—7.大Value处理方案
本文介绍了一种用于监控Redis大key的方案设计及其实现步骤。主要内容包括:方案设计、安装与配置环境、binlog数据消费者。
406 29
Redis应用—7.大Value处理方案
|
人工智能 自然语言处理 搜索推荐
微软开源基于ChatGPT的,超级文本代码智能体
【7月更文挑战第17天】微软的TaskWeaver是开源的LLM框架,聚焦领域特定数据分析与个性化需求。它以代码优先,将用户请求转为可执行代码,增强处理复杂任务的效率和准确性。通过用户定义插件实现定制,适应多种场景。然而,转化请求可能引入复杂性和错误,非技术用户使用插件有难度,且开源带来的安全与隐私问题需关注。[论文链接](https://arxiv.org/abs/2311.17541)**
284 4
|
存储 SQL 安全
API 数据接口使用与安全指南
本文介绍了API数据接口的基础知识、使用流程及安全要点。首先,定义了API及其在现代技术生态中的重要性,接着详细阐述了API使用的六个步骤:明确需求、搜索筛选、注册获取密钥、解读文档、环境搭建与集成、数据处理与应用集成。最后,强调了API安全的重要性,包括身份验证、数据加密、防范攻击及安全监控等方面,确保API的安全稳定运行。
|
C语言
c语言编写一个简单的计算器(有需要直接复制粘贴使用)
c语言编写一个简单的计算器(有需要直接复制粘贴使用)
1639 0
|
存储 数据安全/隐私保护
如何选择使用字节流还是字符流
在处理文件或网络数据时,选择字节流(如InputStream/OutputStream)适合处理二进制数据,而字符流(如Reader/Writer)则适用于文本数据,能自动处理字符编码问题,确保文本正确读写。选择依据主要看数据类型及是否需要编码转换。
340 3
|
JavaScript Java 关系型数据库
学生公寓|基于Springboot的学生公寓管理系统设计与实现(源码+数据库+文档)
学生公寓|基于Springboot的学生公寓管理系统设计与实现(源码+数据库+文档)
271 0
|
机器学习/深度学习 人工智能 算法
解决方案评测:通义万相 AI 绘画创作
通义万相 AI 绘画创作工具在功能、使用体验等方面表现出色,为用户提供了一种便捷、高效的绘画创作方式。虽然存在一些不足之处,但随着技术的不断发展和优化,相信其性能和表现会不断提升。对于艺术家、设计师、创意工作者以及普通爱好者来说,通义万相都是一款值得尝试和探索的 AI 绘画工具。
1143 4
解决方案评测:通义万相 AI 绘画创作
|
SQL 存储 分布式计算
插入Hive表数据SQL
【8月更文挑战第10天】
794 4