首页 > 其他分享 >【C标准库】详解feof函数与EOF

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

时间:2022-08-27 20:22:43浏览次数:45  
标签:文件 结束 EOF text 详解 pf feof

创作不易,多多支持!

再说此函数之前,先来说一下EOF是什么

EOF,为End Of File的缩写,通常在文本的最后存在此字符表示资料结束。
在C语言中,或更精确地说成C标准函式库中表示文件结束符。这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志

  • 一般结尾都有一个隐藏字符”EOF”,当程序读取它的时候,就会知道文件已经到达结尾

可以理解为EOF是文本文件的结束标识,

注意:此时的text.txt文件内容为空

相信看到这里,我们基本了解了EOF!

feof

头文件:stdio.h

它是什么?

是检测流上的文件结束符的函数,如果文件结束,则返回非0值,否则返回0

一般文件操作结束后,需要使用feof来判定是不是到达了文件末尾(eof)而结束的。

声明:
int feof(FILE *stream);
参数:

stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。

返回值:

如果碰到eof而结束返回非0值,否则返回0。

操作实例:
  • 注意:此时你的项目工程里面必须有一个text.txt的文件!
#include<stdio.h>
int main()
{
	int ch = 0;
	FILE* pf = fopen("text.txt", "r");
	if (pf == NULL)
	{
		perror("open file text.txt");
		return 0;
	}
	while ((ch = fgetc(pf)) != EOF)
	{
		putc(ch,stdout);
	}
	printf("\n");
	if (ferror(pf))
	{
		printf("读取文件:text.txt时发生错误\n");
	}
	else if (feof(pf))
	{
		printf("已到达文件结束处end of file\n");
	}
	fclose(pf);
	pf = NULL;
	return 0;
}

牢记:在文件读取的过程中,不能用feof函数的返回值直接用来判断文件的是否结束。而是应用于当文件读取结束的时候,判断是读取失败而结束,还是遇到文件尾结束!


以上代码均在vs2022环境下编译

标签:文件,结束,EOF,text,详解,pf,feof
From: https://www.cnblogs.com/mochen94/p/16631376.html

相关文章

  • Nginx分布式框架详解-基础37-45nginx静态资源部署01
    nginx静态资源概述上网去搜索访问资源对于我们来说并不陌生,通过浏览器发送一个HTTP请求实现从客户端发送请求到服务器端获取所需要内容后并把内容回显展示在页面的一个......
  • break用法详解
    在执行while循环或者for循环时,只要循环条件满足,程序会一直执行循环体。但在某些场景,我们希望在循环结束前就强制结束循环。Python中有两种强制结束循环的方法:1.continue语......
  • Dora拦截器详解
    1.QuickStartDora拦截器,为.NETCore量身定制的AOP框架。我们使用“缓存”这个应用场景来演示如何使用Dora:我们创建一个缓存拦截器,并将其应用到某个方法上。缓存拦截器......
  • Nginx分布式框架详解-基础32-36nginx基础配置实例
    nginx基础配置实例需求分析前面我们已经对Nginx服务器默认配置文件的结构和涉及的基本指令做了详细的阐述。通过这些指令的合理配置,我们就可以让一台Nginx服务器正常......
  • 【转载】AF_XDP技术详解
    原文信息作者:rexrock出处:https://rexrock.github.io/post/af_xdp1/目录1.用户态程序1.1创建AF_XDP的socket1.2为UMEM申请内存1.3向AF_XDPsocket注册UMEM1.4......
  • Nginx分布式框架详解-基础22-31nginx核心配置文件
    nginx配置文件nginx.conf的文件结构从前面的内容学习中,我们知道Nginx的核心配置文件默认是放在/usr/local/nginx/conf/nginx.conf,本次我们就来学习下nginx.conf的内......
  • SSL单向/双向认证详解
    1、单向认证和双向认证单向认证SSL协议的具体过程①客户端的浏览器向服务器传送客户端SSL协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯......
  • Max_connect_errors – MySQL性能参数详解
    Max_connect_errors–MySQL性能参数详解_wulantian的博客-CSDN博客_max_connect_errors https://blog.csdn.net/wulantian/article/details/9670957max_connect_error......
  • 手绘地图制作实例详解:如何从0到功能丰富的智慧导览系统
    前面比较系统性地说了一些手绘地图制作的基础知识,现在这里以一个实际案例来详述一下如何从0开始,制作功能完善的智慧导览系统。作者:轻轻的烟雾(z281099678)这里讲解的案......
  • ScheduledThreadPoolExecutor详解与总结
    ScheduledThreadPoolExecutor详解简介继承自ThreadPooExecutor,为任务提供延迟或周期执行.使用专门的ScheduledFutureTask来执行周期任务,也可以接收不需要时间调度的任......