首页 > 试题

feof 函数详解

更新时间:2025-03-31 15:21:53 阅读: 评论:0

关于秋天的手抄报-雪作文400字


2023年5月25日发(作者:报销制度)

feof函数详解

网上很多feof讲解的很模糊,百看不如一试,经过笔者在编译器的亲自测试之后总结

如下:

第一种情况:

如果没有使用fread读取文件而直接使用feof函数得到的返回值是0

第二种情况:

使用fread读取文件,假设使用fread(buf,1,1,filp) 一个字节一个字节的进行读取,如果

没有读到文件的结尾,那么feof返回值都是0,直到读到文件结尾那么返回值就是1

例如:假设要读取的文件名字为txt,文件内容是 hi

程序是:

char buf[10];

FILE *filp = fopen(./txt,rw); //笔者在linux下测试,./txt表示本目录下的txt文件

printf(%dn,feof(fip)); //打印 0 没有调用fread 必然打印0

fread(buf,1,1,filp);

printf(%dn,feof(fip)); //打印 0 读取第一个字节h

fread(buf,1,1,filp);

printf(%dn,feof(fip)); //打印 0 读取第二个字节i

fread(buf,1,1,filp);

printf(%dn,feof(fip)); //打印 0 读取第三个字节---换行符!!

fread(buf,1,1,filp);

printf(%dn,feof(fip)); //打印1 读取文件结束

所以需要注意的有两点一个是没有使用fread直接用feof会返回0,另一个就是换行符也算

是要读取的一个字节,所以如果文件是空的,使用fread之后调用feof也会返回0,因为空

文件也是先读取换行符! 然后再次fread之后使用feof就是1了。

第三种情况:

使用freadn个字节为单位进行读取,例如以4个字节为一组,fread(buf,4,1,filp),如果

4个字节中包含了文件结束符,那么返回的就是1

例如:

例如:假设要读取的文件名字为txt,文件内容是 kkk

那么程序这样:

char buf[10];

FILE *filp = fopen(./txt,rw); //笔者在linux下测试,./txt表示本目录下的txt文件

printf(%dn,feof(fip)); //打印 0 没有调用fread 必然打印0

fread(buf,4,1,filp);

printf(%dn,feof(fip)); //打印0 因为kkk加上换行符正好是4个字节

而如果txt的内容是 kk

fread(buf,1,1,filp);

printf(%dn,feof(fip)); //打印1 因为4个字节是 kk+换行符+文件结束符 包含

了文件结束符就会打印1

储存区-会文


本文发布于:2023-05-25 15:40:56,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/88/17988.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:feof 函数详解.doc

本文 PDF 下载地址:feof 函数详解.pdf

标签:fip
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|