【C语言】文件读取结束的判定。

时间:2023-02-12 21:01:30

????write in front????   

????大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流????

????2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~2022博客之星Top63~作者周榜84﹣作者总榜704~阿里云专家博主 & 阿里云星级博主~掘金优秀创作者⇿InfoQ创作者⇿51CTO红人⇿全网访问量50w+????

????本文由 謓泽 原创 如需转载还请通知⚠

????个人主页-​謓泽51Ctop的博客​????

????欢迎各位→点赞???? + 收藏⭐️ + 留言????

????系列专栏-​謓泽51Ctop的博客_【C语言】从0~1_51CTO博客​????
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本????​​

【C语言】文件读取结束的判定。

????????????文件读取结束的判定????????​​​​​​​????

????错误使用 feof()???? 

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

而是在应用当文件读取结束的时候,判断是读取失败结束,还是遇到文件尾结束。

  1. 文本文件读取是否结束,判断返回值是否为EOF(fgetc()) 或者 NULL(fgets())
  • 例如:fgetc()判断是否为EOF
  • 例如:fgets()判断返回值是否为NULL

EOF→通常在文本的最后存在此字符表示资料结束。

二进制文件的读取结束判断,判断返回值是否小于实际当中要读的个数。

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

????????文件缓冲区????????

文件是指存储在外部存储介质上的、由文件名标识的一组相关信息的集合。由于CPU 与 I/O 设备间速度不匹配。为了缓和 CPU 与 I/O 设备之间速度不匹配矛盾。文件缓冲区是用以暂时存放读写期间的文件数据而在内存区预留的一定空间。使用文件缓冲区可减少读取硬盘的次数。

文件缓冲区是用以暂时存放读写期间的文件数据而在内存区预留的一定空间。通过磁盘缓存来实现,磁盘缓存本身并不是一种实际存在的存储介质,它依托于固定磁盘,提供对主存储器存储空间的扩充,即利用主存中的存储空间, 来暂存从磁盘中读出(或写入)的信息。 主存也可以看做是辅存的高速缓存, 因为,辅存中的数据必须复制到主存方能使用;反之,数据也必须先存在主存中,才能输出到辅存。

一个文件的数据可能出现在存储器层次的不同级别中,例如,一个文件数据通常被存储在辅存中(如硬盘),当其需要运行或被访问时,就必须调入主存,也可以暂时存放在主存的中。磁盘高速缓存当中大容量的辅存常常使用磁盘,磁盘数据经常备份到磁带或可移动磁盘组上,以防止硬盘故障时丢失数据。有些系统自动地把老文件数据从辅存转储到海量存储器中,如磁带上,这样做还能降低存储价格。

相信大家对 ????getchar()???? 函数不陌生,当我们在键盘当中输入字符并按下回车的时候,我们所输入的数据会被存放在 缓冲区 当中去。那么在这里放到缓冲区的好处是什么?

举个例子,我们知道计算机CPU的处理速度很快的,而我们键盘的输入速度总是比不过CPU的处理速度,那么CPU就得一直等着键盘输入完,这样很浪费资源。于是,我们党键盘输入完了,再让CPU一次性处理,这样就会大大地提高效率。就好比,老师提问问题如果提出一个问题,让一个同学回答 又 或者一次提十个问题,让十个同学来回答,这样绝对是一次提出十个问题的效率会高很多。

又比如,我们的打印机打印文档,打印机的处理速度是很慢的,所以我们会将文档输出到打印机的缓存中去,这样打印机就可以自行慢慢打印,而不必占用CPU资源。


????最后???? 

如果这篇文章有帮助到你的话,不妨三连支持博主下(ง •_•)ง 你的支持就是对我写作的最大的动力,需要交流学习可以添加博主的微信即可。



【C语言】文件读取结束的判定。

★最后★点赞???? 关注???? 收藏????  == 学会✔