函数原型: 

int feof ( FILE * stream );

头文件:

#include <stdio.h>

参数:

stream

FILE结构的指针。指向一个文件流对象的指针。例如:

FILE * fp = fopen("test.ini");

fp 即这个指向文件流test.ini 的指针。可以作为feof函数的参数。

feof(fp);

返回值:

如果文件结束符被设置,则返回非0值,否则返回0。

即如果 feof(fp) == 0 ,说明还没到文件的结尾。

而如果 feof(fp) != 0 , 说明文件指针已经读取越过了EOF,文档已经到结尾。

函数说明:

EOF(End Of File)文件结束符,它的意思是,文档的结尾都有一个隐藏字符”EOF”,当程序读取它的时候,就会知道文件已经到达结尾。通常使用while循环加EOF判断作为读取结束的标志。

EOF 是一个宏定义,它的值通常为 -1,但它依系统有所不同。

feof判断文件结束是通过读取函数fread/fscanf等返回错误来识别的,故而判断文件是否结束应该是在读取函数之后进行判断。

feof是判断文件指针是否越过(或者叫读取)了EOF标记。

通过调用如下函数 clearerr, rewind, fseek, fsetpos or freopen 可以清空feof 的文件指针。或者重新打开文件,也会重新设置文件指针。

例子:

1,获取文件的字符个数。读取文件myfile.txt, 并一个个的读取里面的字符,当遇到EOF时则停止。输出字符个数。

/* feof example: byte counter */
#include <stdio.h>int main ()
{FILE * pFile;int n = 0;pFile = fopen ("myfile.txt","rb");if (pFile==NULL) perror ("Error opening file");else{while (fgetc(pFile) != EOF) {++n;}if (feof(pFile)) {puts ("End-of-File reached.");printf ("Total number of bytes read: %d\n", n);}else puts ("End-of-File was not reached.");fclose (pFile);}return 0;
}

参考资料:

1, 网址:http://www.cplusplus.com/reference/cstdio/feof/?kw=feof

转载于:https://my.oschina.net/PMNaYxT/blog/1923969

Linux c/c++编程--feof函数相关推荐

  1. linux下socket编程读写函数

    linux下socket编程,实现服务器与客户端的通信之后,在同一个虚拟机上,打开两个shell,一个运行服务器程序,一个运行客户端程序,课相互发送数据. 如果使用的是recv接收函数,当关闭客户端或 ...

  2. Linux 下socket编程 connect()函数返回-1(error:Connection refused)

    一.背景 系统:CentOS7 64位 物理机 IP:192.168.2.199/24 使用端口:9999 二.问题描述 在tty1上运行服务器程序,在tty2上运行客户端程序 若连接成功,则服务器程 ...

  3. Linux socket 网络编程常用函数总结

    1.字节序函数 #include <netinet.h> uint16_t htons(uint16_t host16bitvalue); uint32_t htonl(uint32_t  ...

  4. Linux系统编程—文件—fputc、fgetc、feof函数

    一.fputc函数 函数格式:int fputc (int c, File *fp) 函数功能: 将字符c写到文件指针fp所指向的文件的当前写指针的位置. 参数:c 为要写入的字符,虽然函数被定义为整 ...

  5. Linux环境高级编程函数,Linux环境高级编程--出错处理(CLStatus)

    很多程序库对外提供若干类,每个方法出错时如何告知调用者是否出错,以及出错码(在Linux上在error.h中的全局errno就是保存我们Linux程序执行的出错码的)?方法很多,为了简化起见,函数将返 ...

  6. 进程函数一步步理解Linux进程(2)--进程编程进程函数

    查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧! 0. 说明 作者:Gao Peng<gaopenghigh@gmail.com> ...

  7. Linux 与 Python编程2021 经典函数实例 educoder实训

    第1关:递归函数 - 汉诺塔的魅力 编程要求 本关的编程任务是补全src/step1/recursive.py文件的代码,实现相应的功能.具体要求如下: 定义一个函数fact(n),实现的功能是对输入 ...

  8. LINUX下Socket编程 函数格式详解

    你需要了解的一些系统调用: socket() bind() connect() listen() accept() send() recv() sendto() recvfrom() close() ...

  9. Linux C编程 itoa()函数 atoi()函数

    今天在Ubuntu下编程,发现Linux内核中只有atoi()函数,被包含在stdlib.h头文件中,而没有itoa()函数,不过,itoa()函数的功能可以用sprintf()函数代替.如 int ...

最新文章

  1. DLL的高级操作技术——Windows核心编程学习手札之二十
  2. RPC调用框架比较分析--转载
  3. java读取 png_如何让java的ImageBuffer正确读取PNG文件?
  4. androidstuido_schooltest_6_media_service
  5. 69. x 的平方根 golang
  6. c盘java文件误删_java获取C盘下的隐藏目录文件名称
  7. 宏基因组多少钱一个样_太阳能路灯价格是多少钱一盏(12米高杆灯报价)
  8. 全能型AI!用通用预训练感知模型处理多模态多任务!商汤西交港中文提出:Uni-Perceiver...
  9. python教程视频-Python系列视频(一)——Python语言基础
  10. 指定linux软件安装路径
  11. iOS网络请求 get - post 区别
  12. 【视频】CCNA——小凡模拟器的简单介绍和使用
  13. layUI中table重载后表头时间控件失效解决方法,已实践
  14. 用c语言编写游戏中秋博饼,描写中秋节博饼的作文600字
  15. godaddy服务器内网站转移,2021年Godaddy最新域名转出教程 | Godaddy美国主机中文指南...
  16. 【异常处理】devcpp编译时 “源文件未编译”
  17. 两款开关电源的纹波对比
  18. js html显示emoji表情,canvas绘制一个常用的emoji表情
  19. 如何用Python面向对象实现盖伦和瑞文互殴?
  20. 如何去高效的学习?怎样克服?

热门文章

  1. SPI全双工与半双工
  2. 罗斯4.8秒制胜球公牛1分擒湖人 科比28分绝杀不中
  3. 研大考研不是骗子,医学考研集训第一营
  4. XSS-Fuzz的艺术
  5. 从硅谷到北京的FinTech双城记: 将区块链落地华尔街的PeerNova造访智链ChainNova
  6. 什么是cname域名?
  7. Modern OpenGL - GLSL着色语言3:GLSL中的数据类型
  8. ubuntu20.04 安装 DevStack
  9. devstack安装
  10. Unity【Lerp Slerp】- 线性插值与球形插值的区别