feof函数详解
来源:互联网 发布:淘宝 7个小白 编辑:程序博客网 时间:2024/04/20 04:53
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(“%d\n”,feof(fip)); //打印 0 没有调用fread 必然打印0
fread(buf,1,1,filp);
printf(“%d\n”,feof(fip)); //打印 0 读取第一个字节h
fread(buf,1,1,filp);
printf(“%d\n”,feof(fip)); //打印 0 读取第二个字节i
fread(buf,1,1,filp);
printf(“%d\n”,feof(fip)); //打印 0 读取第三个字节---换行符!!
fread(buf,1,1,filp);
printf(“%d\n”,feof(fip)); //打印1 读取文件结束
所以需要注意的有两点一个是没有使用fread直接用feof会返回0,另一个就是换行符也算是要读取的一个字节,所以如果文件是空的,使用fread之后调用feof也会返回0,因为空文件也是先读取换行符! 然后再次fread之后使用feof就是1了。
第三种情况:
使用fread以n个字节为单位进行读取,例如以4个字节为一组,fread(buf,4,1,filp),如果在4个字节中包含了文件结束符,那么返回的就是1
例如:
例如:假设要读取的文件名字为txt,文件内容是 kkk
那么程序这样:
char buf[10];
FILE *filp = fopen(“./txt”,”rw”); //笔者在linux下测试,./txt表示本目录下的txt文件
printf(“%d\n”,feof(fip)); //打印 0 没有调用fread 必然打印0
fread(buf,4,1,filp);
printf(“%d\n”,feof(fip)); //打印0 因为kkk加上换行符正好是4个字节
而如果txt的内容是 kk
fread(buf,1,1,filp);
printf(“%d\n”,feof(fip)); //打印1 因为4个字节是 kk+换行符+文件结束符 包含了文件结束符就会打印1
- feof函数详解
- MATLAB feof和~feof函数用法
- feof()函数注意事项
- feof函数重读问题
- 由feof函数说起
- feof()函数
- 函数名: feof
- feof()函数问题
- feof (函数名)
- 函数feof使用注意事项
- feof()函数以及EOF
- fread函数 和 feof函数
- EOF与feof()函数关系
- C语言中的feof函数
- C语言feof()函数用法.
- 文件检测函数 ferror feof
- feof(),ferror()文件检测函数
- feof()
- java 数字转化成中文大写
- 转载《华为基本法》
- 开源C/C++网络库比较
- 理解HTTP消息头
- 【数据结构和算法分析】单链表的基本实现
- feof函数详解
- 换位
- 指定范围的素数判定【杭电2012】 附题
- 密码、文件MD5加密,密码sha256、sha384、sha512Hex等加密
- 管理寓言之一:南风法则
- SQLAPI++的几个示例
- HTTP协议的头信息详解
- iOS protubuf 的使用
- 管理寓言之二:“木桶”法则