文件操作相关知识

目录

前言

一、文件介绍

二、文件的打开和关闭

三、文件的顺序读写

四、文件的随机读写 

五、文件读取结束的判定


前言

本章我们学习一下文件操作相关的知识

一、文件介绍

什么是文件呢?磁盘(硬盘)上的文件就是文件,但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类)

程序文件:

程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows 环境后缀为.exe)

数据文件:

文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件

本章讨论的是数据文件

文件名:

文件类别:

数据文件又可以分为文本文件和二进制文件

文本文件即是数据在内存中经过转换由二进制形式转换为ASCII码值形式再输出到外存设备中形成的文件

二进制文件即是数据不经过任何转换直接输出到外存中形成的文件

二、文件的打开和关闭

流的概念:

我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输入输出操作各不相同,为了方便程序员对各种设备进行方便的操作,我们抽象出了流的概念,我们可以把流想象成流淌着数据的河 

标准流:

C语言程序在启动的时候,默认打开了3个流:

如何打开和关闭文件:

 我们在使用文件之前应该先打开文件,使用结束之后关闭文件

ANSIC规定,用fopen函数来打开文件,用fclose函数来关闭文件

mode表示文件的打开模式,下面是常用的文件打开模式:

 

三、文件的顺序读写

顺序读写函数介绍

上面说的适用于所有输入流一般指适用于标准输入流和其他输入流(如文件输入流);所有输出流一般指适用于标准输出流和其他输出流(如文件输出流)

在下一章会详细讲解各个函数的使用

四、文件的随机读写 

当我们需要对指定位置的数据进行读写操作的时候,我们就需要用到文件的随机读写函数,包括fseek,ftell,rewind三个函数,也会在下一章详细讲解

五、文件读取结束的判定

判断文件读取结束的方法:

文本文件

1、看getc返回值是否为EOF(-1),是则结尾

2、看gets返回值是否为NULL,是则结尾

二进制文件

1、判断返回值是否小于实际要读的个数,是则结尾

feof:

feof的作用是在文件读取结束的时候,判断文件读取结束的原因是否为读到文件末尾

ferror:

ferror的作用是在文件读取结束的时候,判断文件读取结束的原因是否为遇到读取错误

举例:

	int main()
		{
			FILE* pf = fopen("test.txt", "r");
			if (pf == NULL)
			{
				perror("fopen");
				return 1;
			}
			//读取
			int ch = 0;
			while ((ch = fgetc(pf)) != EOF)
			{
				printf("%c\n", ch);
			}
			//判断是什么原因导致读取结束的
			if (feof(pf))
			{
				printf("遇到文件末尾,读取正常结束\n");
			}
			else if (ferror(pf))
			{
				perror("fgetc");
			}
		
			return 0;
		}

 本章到这里就结束啦,希望各位小伙伴可以点个关注,支持一下阿鹿,大家的鼓励是我前进的第一动力,3Q~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值