目录

  • 引言
  • 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函数的坑相关推荐

  1. C语言feof()函数的使用

    C语言feof()函数的使用 2009-11-24 21:55 正确的应该是feof返回0表示文件没有结束,返回1,表示结束. feof实际观察的是上次读操作的内容,也就是上次读操作fread返回的值 ...

  2. c语言feof函数_使用示例的C语言中的feof()函数

    c语言feof函数 C语言中的feof()函数 (feof() function in C) Prototype: 原型: int feof(FILE* filename); Parameters: ...

  3. C语言feof()函数判断文件位置指针到末尾

    #include<stdio.h> #include<stdlib.h> int main() {FILE *fp;char ch;fp=fopen("./tmp/t ...

  4. C语言——feof函数

  5. C语言中关于feof函数fgetc函数一些理解

    C语言中关于feof函数&fgetc函数一些理解 前言 问题 解决 前言 在使用C语言来对文件操作的时候,我们经常使用一些feof.fgetc函数,但是在使用的过程中也会遇到一些小问题. 问题 ...

  6. C语言之EOF、feof函数、ferror函数

    本文为转载文章,原文:C语言再学习 -- EOF.feof函数.ferror函数 EOF详解 1.定义: EOF是end of file的缩写,表示"文字流"(stream)的结尾 ...

  7. C语言再学习 -- EOF、feof函数、ferror函数

    EOF详解 EOF是end of file的缩写,表示"文字流"(stream)的结尾.这里的"文字流",可以是文件(file),也可以是标准输入(stdin) ...

  8. 【C 语言】文件操作 ( 读取文件中的结构体数组 | feof 函数使用注意事项 )

    文章目录 一.读取文件中的结构体数组 | feof 函数使用注意事项 二.代码示例 一.读取文件中的结构体数组 | feof 函数使用注意事项 读取文件结构体时 , 可以循环读取文件中的数据 , 只使 ...

  9. c语言中关于文件读取结束的判定,以及feof函数的理解

    判断一个文件的读取是否结束,很多人,会想到用feof函数来判定,的确需要用到这个函数,但是仅仅靠这个函数是不够的. 错误用法: #include<stdio.h>int main() {F ...

最新文章

  1. Pthread多线程编程之查看Pthread版本的方法
  2. 【Win10 UWP】URI Scheme(二):自定义协议的处理和适用场景
  3. 半导体二极管和晶体三极管
  4. 调查称HTML5获多数开发者支持 亚太最高
  5. python算法与数据结构-二分查找算法
  6. [Abp vNext 源码分析] - 19. 多租户
  7. 深入jvm虚拟机第三版源码_深入JVM虚拟机,阿里架构师直言,这份文档真的是JVM最深解读...
  8. server2019 sqlcmd命令安装_Ubuntu20.04LTS安装MS sql-server2019的方法
  9. python的help怎么用_python的help函数如何使用
  10. 55天 - 贪心算法 - 田忌赛马问题 openjudge百炼 2287
  11. 神武显示未能成功连接服务器,神武:疑难问题解答,总有你要的答案
  12. python 导入.so 文件
  13. 光盘出租系统mysql_数据库课程设计--碟片出租系统
  14. CV笔记9:纹理特征之LBP特征(基于python实现)
  15. 紫光集团或入股武汉新芯 赵伟国将任董事长
  16. FFOS 1.3 settings usb tethering 流程
  17. void 和 void *区别(c++)
  18. jzoj 6012.【NOIP2019模拟1.25A组】荷马史诗 dp
  19. leetcode189 python旋转数组
  20. 元旦| 微软ATP伴你2023一路前行

热门文章

  1. oracle中sign函数
  2. Ubuntu Server 20.04 LTS:稳定性,安全性及更多
  3. Spring常用注解(讲解的通俗易懂,很透彻)
  4. 踏入机器学习半只脚记录(一)
  5. 程序员辞职卖卷饼,4天挣了1个月工资……所以我应该改行卖卷饼吗?
  6. WordPress网站如何升级PHP
  7. fftw java_如何在iOS上编译fftw3
  8. 选择万德L2接口需要遵循什么原则?
  9. h3c路由器修改ssh登录密码
  10. 一张图看懂 Hadoop RPC 机制