创作不易,多多支持! ‾ \underline{创作不易,多多支持! } 创作不易,多多支持!​

再说此函数之前,先来说一下EOF是什么

EOF,为End Of File的缩写,通常在文本的最后存在此字符表示资料结束。
在C语言中,或更精确地说成C标准函式库中表示文件结束符。这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志

  • 一般结尾都有一个隐藏字符”EOF”,当程序读取它的时候,就会知道文件已经到达结尾

可以理解为EOF是文本文件的结束标识,

注意:此时的text.txt文件内容为空

相信看到这里,我们基本了解了EOF!

feof

头文件:stdio.h

它是什么?

是检测流上的文件结束符的函数,如果文件结束,则返回非0值,否则返回0

一般文件操作结束后,需要使用feof来判定是不是到达了文件末尾(eof)而结束的。

声明:
int feof(FILE *stream);
参数:

stream – 这是指向 FILE 对象的指针,该 FILE 对象标识了流。

返回值:

如果碰到eof而结束返回非0值,否则返回0。

操作实例:
  • 注意:此时你的项目工程里面必须有一个text.txt的文件!
#include<stdio.h>
int main()
{int ch = 0;FILE* pf = fopen("text.txt", "r");if (pf == NULL){perror("open file text.txt");return 0;}while ((ch = fgetc(pf)) != EOF){putc(ch,stdout);}printf("\n");if (ferror(pf)){printf("读取文件:text.txt时发生错误\n");}else if (feof(pf)){printf("已到达文件结束处end of file\n");}fclose(pf);pf = NULL;return 0;
}

牢记:在文件读取的过程中,不能用feof函数的返回值直接用来判断文件的是否结束。而是应用于当文件读取结束的时候,判断是读取失败而结束,还是遇到文件尾结束!


以上代码均在vs2022环境下编译

【C标准库】详解feof函数与EOF相关推荐

  1. 【python】标准库详解

    注:最后有面试挑战,看看自己掌握了吗 文章目录 Standard Library简介 python内置对象 如何安装发布第三方模块 10最好用的模块汇总 包的本质 datetime模块 案例 Math ...

  2. c语言标准库详解(七):字符串函数string.h

    c语言标准库详解(七):字符串函数<string.h> 头文件<string.h>中定义了两组字符串函数.第一组函数的名字以 str 开头:第二组函数的名字以 mem 开头.除 ...

  3. c语言标准库详解(十四):时间函数time.h

    c语言标准库详解(十四):时间函数<time.h> 概述 头文件<time.h>中声明了一些处理日期与时间的类型和函数.其中的一些函数用于处理当地时间,因为时区等原因,当地时间 ...

  4. mysql5.6+master+date_MySQL5.6的4个自带库详解

    1.information_schema详细介绍: information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式.什么是元数据呢?元数据是关于数据的数据,如数据库名或表 ...

  5. python gpu加速库比matlab快吗_Python之Unittest和Requests库详解

    1.按类来执行 import unittest class f1(unittest.TestCase): def setUp(self): pass def tearDown(self): pass ...

  6. chrono是一个time library,C++11 std::chrono库详解

    C++11 std::chrono库详解 chrono是一个time library, 源于boost,现在已经是C++标准.话说今年似乎又要出新标准了,好期待啊! 要使用chrono库,需要#inc ...

  7. C++ time.h 库详解

    C++ time.h 库详解 time.h 是C++常用标准库之一 常用函数 clock localtime asctime ctime difftime gmtime time tzset strf ...

  8. python re库 详解(正则表达式)

    python re库 详解(正则表达式) 说明 则表达式(英文名称:regular expression,regex,RE)是用来简洁表达一组字符串特征的表达式.最主要应用在字符串匹配中. 1).re ...

  9. STM32 HAL库详解

    STM32 HAL库整体总结 STM32 之二 HAL库详解 及 手动移植 本篇博客是对以上参考资源的一个二次总结与整理. 1. HAL库文件结构 对于开发人员而言,首先要清楚 HAL 库的文件结构. ...

最新文章

  1. 1-Swift中的Struct 和 Class
  2. configure: error: Neither flex nor lex was found.
  3. java解析表字段_从SQL / HQL Java解析表和列名
  4. 74HC595芯片使用说明
  5. junit测试报告生成_这是东西:jUnit:动态测试生成
  6. 云服务器怎么设置域名,云服务器域名设置在哪里
  7. 程序员如何和产品经理优雅的干架
  8. Java回调机制总结
  9. 数学建模-SARS疫情对某些经济指标影响例题
  10. lua invalid pattern capture
  11. rank函数在c语言怎么用,如何利用RANK函数排名?RANK函数怎么使用?
  12. 零点起算法44求最小值C语言,【算法链表面试题】面试问题:C语言实现“关… - 看准网...
  13. 安卓6.0系统一键激活XPOSED框架的方法
  14. 苹果宣布推出新的Mac Mini和MacBook Pro与M2 Pro和M2 Max
  15. Towards Binary-Valued Gates for Robust LSTM Training
  16. 19.调整数组奇偶数
  17. 计算机英语复试自我介绍,计算机复试英语自我介绍
  18. 程序员怎样才能达到编程的最高境界
  19. 阿里云GanosBase升级,发布首个云孪生时空数据库
  20. Word文档目录自动生成和页码设置

热门文章

  1. python关于递归求组合与组合数-通过阶乘, fibonacci加深对递归的理解
  2. Oracle 查看和修改数据库时区
  3. 各个数据库的空间函数
  4. 《漫步》flash动画制作全记录五
  5. 版本控制系统-集中式与分布式的区别
  6. mysql导出gkb_mysql高效导入导出工具之mydumper
  7. 【小安翻唱】启程去明天——oblivious
  8. linux中oracle导出dmp,linux下导入导出oracle的dmp文件
  9. HTML网页设计【足球科普】学生DW静态网页设计
  10. Mysql 计算两个时间差函数