feof函数重读问题

fgets读到文件最后一行的时候(返回不是NULL) ,feof测试为假,再fgets一次(返回为NULL),再feof测试为真。

feof是通过判断read返回错误时,才判断流已经到达结尾。

在对流操作的时候,应该判断fgets()为NULL

其实正确使用 feof 函数很容易,只要记住一个原则就是了:“先读文件后用 feof 判断”。

foef(stream)针对的是”流“, 用一个indicator(指示)表明文件尾,而feof判断这个指示是否设置,而不是判断当前SEEK数值是否到尾。

seek值到尾了对于“流”不一定是是文件尾,因为“流”是会不断增长的。

对于红字部分确实有些代码确实如此

while(!feof(fp)) printf("This file has EOF/n"); lseek(fp, 0, SEEK_SET);

查看是否有EOF标识符,然后再进行处理。

NAME
       clearerr, feof, ferror, fileno - check and reset stream status

SYNOPSIS
       #include <stdio.h>

void clearerr(FILE *stream);
       int feof(FILE *stream);
       int ferror(FILE *stream);
       int fileno(FILE *stream);

DESCRIPTION
       The function clearerr clears the end-of-file and error indicators for the stream pointed to by stream.

The  function  feof tests the end-of-file indicator for the stream pointed to by stream, returning non-zero if it is
       set.  The end-of-file indicator can only be cleared by the function clearerr.

The function ferror tests the error indicator for the stream pointed to by stream, returning non-zero if it is  set.
       The error indicator can only be reset by the clearerr function.

The function fileno examines the argument stream and returns its integer descriptor.

For non-locking counterparts, see unlocked_stdio(3).

ERRORS
       These  functions  should not fail and do not set the external variable errno.  (However, in case fileno detects that
       its argument is not a valid stream, it must return -1 and set errno to EBADF.)

CONFORMING TO
       The functions clearerr, feof, and ferror conform to X3.159-1989 (鈥樷€楢NSI C鈥欌€?.

SEE ALSO
       open(2), unlocked_stdio(3), stdio(3)

posted on 2009-07-10 16:00 SunBo 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/sunyubo/archive/2009/07/10/2282260.html

feof函数重读问题相关推荐

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

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

  2. PHP使用feof()函数读文件的方法

    这篇文章主要介绍了PHP使用feof()函数读文件的方法,以实例形式对比了正确与错误的用法,阐明了feof()函数的使用技巧,需要的朋友可以参考下 本文实例讲述了PHP使用feof()函数读文件的方法 ...

  3. 【C标准库】详解feof函数与EOF

    创作不易,多多支持! ‾ \underline{创作不易,多多支持! } 创作不易,多多支持!​ 再说此函数之前,先来说一下EOF是什么 EOF,为End Of File的缩写,通常在文本的最后存在此 ...

  4. feof()函数的文件操作

    feof()函数在文件操作时,用于判断文件是否结束.如果文件结束,则返回非0值,否则返回0. 对于文件来说,无论是空文件,还是存有信息的文件.文档的结尾都有一个隐藏字符"EOF", ...

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

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

  6. C语言中的feof函数

    函数名 feof 功 能 检测流上的文件结束符 用 法 int feof(FILE *stream); 程序例 #include <stdio.h> int main(void) { FI ...

  7. feof函数,fscanf函数,strtok函数等遇到的小疑惑解决办法

    feof函数,fscanf函数,strtok函数等遇到的小疑惑解决办法       近几天我等几个小菜鸟要做一个快译通软件,简单实现根据英语查汉语,本人负责将dict.txt词库中的单词调入内存哈希表 ...

  8. feof函数的正确使用

    在文件读取的过程中,feof函数经常被误用来判断文件是否结束.  但其实她是被应用于当文件读取结束的时候,判断是读取失败结束,还是遇到文件的结尾而结束 正因为如此feof函数常常与ferror函数配合 ...

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

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

最新文章

  1. Revit结构2021专业人士的选择:从入门到专业
  2. 孙丕恕的筹谋:浪潮如何向云而生
  3. 登白云嶂,银屏嘴游记
  4. 多媒体互动受青睐,演绎未来3G网络
  5. 5G NR — 基站的扇区、小区、跟踪区、注册区、服务区
  6. CCNA(Stand-ALONE)Lab 12-Static Routes
  7. tplink 跨路由器 共享打印机_焦作联通案例分享:跨网段通过防火墙共享打印机设置...
  8. SQL语言基础:数据库语言概念介绍
  9. linux vi使用手册,史上最全VIM使用手册
  10. java 获取当前月份减1_java String 日期 转成 Date, 月份减1
  11. 今天参加广州.NET俱乐部活动,运气超好
  12. locate用主动还是被动_已婚女人VS未婚女人,你觉得女人是应该主动出击还是被动接受?...
  13. python单例模式有什么用_python单例模式是什么
  14. MT8516芯片原理图资料(6MIC_RESERVE_4MIC_ARRA)
  15. iPhone5主摄像头图像传感器来自SONY
  16. 希尔排序实现与复杂度、稳定性分析
  17. H5DS简单又强大的H5编辑器
  18. 计算机在小学英语教学中的应用,浅析计算机在英语教学中的应用
  19. git 指令操作虚拟机操作
  20. 【LeetCode】【队列】剑指 Offer 59 - I. 滑动窗口的最大值 思路解析和代码

热门文章

  1. AttributeError: module ‘torchtext.data‘ has no attribute ‘Field‘ 解决
  2. Web消息推送之SSE
  3. JavaScript零基础入门--笔记动力节点最新老杜(九-完结)全套笔记精髓
  4. 2019最新老男孩JAVA架构师之路成长课程实战
  5. 嵌入式Linux系统开发笔记(七)
  6. [内附完整源码和文档] 基于WEB的仓库管理系统的设计与实现
  7. 机器学习中常见性能度量汇总
  8. Netkiller Linux Shell 手札之前言
  9. NBA表格_NBA西强东弱有多严重?看科比、詹姆斯和杜兰特对手胜率就知道了
  10. 【谷歌浏览器 -- Vimium 常用快捷键】