C语言:feof函数的坑
目录
- 引言
- feof()函数
引言
做课设的时候踩到这个坑,跟大家分享一下
feof()函数
看一下下面的代码
#include<stdio.h>
int main()
{FILE *fp = fopen("try", "w");if (feof(fp) == 1)puts("文件已结束");elseputs("文件未结束");return 0;
}
输出:文件未结束
照理说,w参数打开的文件里面应该只有EOF才对啊,为什么会返回0呢?
查阅资料后:
feof函数
检测流上的文件结束符,如果文件结束,则返回非0值,否则返回0(即,文件结束:返回非0值,文件未结束,返回0值)
int feof(FILE *stream);
注意:feof判断文件结束是通过读取函数fread/fscanf等返回错误来识别的,故而判断文件是否结束应该是在读取函数之后进行判断。比如,在while循环读取一个文件时,如果是在读取函数之前进行判断,则如果文件最后一行是空白行,可能会造成内存错误。
原来出错的原因在这里,建议改成如下形式:
#include<stdio.h>
int main()
{FILE *fp = fopen("try", "w");char temp[50];if (fread(temp, sizeof(temp), 1, fp) != 1)puts("文件已结束");elseputs("文件未结束");return 0;
}
输出:文件已结束
直接利用读文件函数的返回值来判断是否到达结尾。
C语言:feof函数的坑相关推荐
- C语言feof()函数的使用
C语言feof()函数的使用 2009-11-24 21:55 正确的应该是feof返回0表示文件没有结束,返回1,表示结束. feof实际观察的是上次读操作的内容,也就是上次读操作fread返回的值 ...
- c语言feof函数_使用示例的C语言中的feof()函数
c语言feof函数 C语言中的feof()函数 (feof() function in C) Prototype: 原型: int feof(FILE* filename); Parameters: ...
- C语言feof()函数判断文件位置指针到末尾
#include<stdio.h> #include<stdlib.h> int main() {FILE *fp;char ch;fp=fopen("./tmp/t ...
- C语言——feof函数
- C语言中关于feof函数fgetc函数一些理解
C语言中关于feof函数&fgetc函数一些理解 前言 问题 解决 前言 在使用C语言来对文件操作的时候,我们经常使用一些feof.fgetc函数,但是在使用的过程中也会遇到一些小问题. 问题 ...
- C语言之EOF、feof函数、ferror函数
本文为转载文章,原文:C语言再学习 -- EOF.feof函数.ferror函数 EOF详解 1.定义: EOF是end of file的缩写,表示"文字流"(stream)的结尾 ...
- C语言再学习 -- EOF、feof函数、ferror函数
EOF详解 EOF是end of file的缩写,表示"文字流"(stream)的结尾.这里的"文字流",可以是文件(file),也可以是标准输入(stdin) ...
- 【C 语言】文件操作 ( 读取文件中的结构体数组 | feof 函数使用注意事项 )
文章目录 一.读取文件中的结构体数组 | feof 函数使用注意事项 二.代码示例 一.读取文件中的结构体数组 | feof 函数使用注意事项 读取文件结构体时 , 可以循环读取文件中的数据 , 只使 ...
- c语言中关于文件读取结束的判定,以及feof函数的理解
判断一个文件的读取是否结束,很多人,会想到用feof函数来判定,的确需要用到这个函数,但是仅仅靠这个函数是不够的. 错误用法: #include<stdio.h>int main() {F ...
最新文章
- Pthread多线程编程之查看Pthread版本的方法
- 【Win10 UWP】URI Scheme(二):自定义协议的处理和适用场景
- 半导体二极管和晶体三极管
- 调查称HTML5获多数开发者支持 亚太最高
- python算法与数据结构-二分查找算法
- [Abp vNext 源码分析] - 19. 多租户
- 深入jvm虚拟机第三版源码_深入JVM虚拟机,阿里架构师直言,这份文档真的是JVM最深解读...
- server2019 sqlcmd命令安装_Ubuntu20.04LTS安装MS sql-server2019的方法
- python的help怎么用_python的help函数如何使用
- 55天 - 贪心算法 - 田忌赛马问题 openjudge百炼 2287
- 神武显示未能成功连接服务器,神武:疑难问题解答,总有你要的答案
- python 导入.so 文件
- 光盘出租系统mysql_数据库课程设计--碟片出租系统
- CV笔记9:纹理特征之LBP特征(基于python实现)
- 紫光集团或入股武汉新芯 赵伟国将任董事长
- FFOS 1.3 settings usb tethering 流程
- void 和 void *区别(c++)
- jzoj 6012.【NOIP2019模拟1.25A组】荷马史诗 dp
- leetcode189 python旋转数组
- 元旦| 微软ATP伴你2023一路前行