文件操作(c语言)

一、为什么使用文件操作?

还记得我们写过的通讯录吗?
动态增长版本的通讯录数据是存在内存中的,程序退出后数据会被释放,再次运行时就要重新输入,这样使用通讯录就十分难受。
而数据写到文件中就是将数据储存到硬盘中,那么就可以持久化储存了。
使用文件我们可以将数据直接储存到电脑硬盘上,做到数据的持久化储存。

二、什么是文件?

磁盘上的文件就是文件。

在程序设计中,我们谈的文件一般有两种:程序文件、数据文件(从文件功能来分类)。

2.1程序文件

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

源程序文件

目标文件

可执行文件

2.2数据文件

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

在以前处理数据的输入输出都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上。

2.3文件名

一个文件要有唯一的一个文件标识,以便用户的使用。
文件名包括三部分:文件路径+文件名主干+文件后缀
例如:
c:\code\test.txt
为了方便使用,文件标识常被称为文件名。

三、文件的打开和关闭

3.1文件指针

缓冲文件系统中,关键的概念是“文件类型指针”,简称“文件指针”。

每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息,这些信息被存放在一个结构体中。该结构体是有系统声明的,取名FILE

FILE*pf

我们定义一个文件指针指向文件信息区,文件信息区中又存放了文件的相关信息,这时我们就可以对文件进行操作。

3.2打开和关闭文件

打开文件

fopen()函数是要以mode方式来使用filename文件

关闭文件

直接使用指针fp来关闭文件,使用文件后一定要关闭文件

文件使用方法(mode):

文件使用方式

含义

如果指定文件不存在

"r"(只读)

为了输入数据,打开一个存在的文本文件

出错

"w"(只写)

为了输出数据,打开一个存在的文本文件

建立新的文件

"a"(追加)

向文本文件尾添加数据

建立新的文件

"rb"(只读)

为了输入数据,打开一个二进制文件

出错

"wb"(只写)

为了输出数据,打开一个二进制文件

建立新的文件

"ab"(追加)

向二进制文件尾添加数据

出错

"r+"(读写)

为了读和写,打开一个文本文件

出错

"w+"(读写)

为了读和写,建立一个文本文件

建立新的文件

"a+"(读写)

打开一个文件,在末尾续写

建立新的文件

"rb+"(读写)

为了读和写,打开二进制文件

出错

"wb+"(读写)

为了读和写,新建一个二进制文件

出错

"ab+"(读写)

打开一个二进制文件,在末尾续写

建立新的文件

如果为r模式的时候就会返回空指针,并且报错

当为w模式的时候如果文件不存在就会创建一个,不会报错

创建的文本文件

四、文件的顺序读写

fgetc适用所有输入流,存储一个字符

fputc适用所有输出流,输出一个字符

fgets适用所有输入流,存储一行字符

fputs适用所有输出流,输出一行字符

fscanf适用所有输入流,存储格式化数据

fprintf适用所有输出流,输出格式化数据

fread只适用文件输入,以二进制格式存储到文件

fread只适用文件输出,以二进制格式从文件输出

这里提供三种文件读取的结束标志

fgetc判断是否为 EOF

fgets 判断返回值是否为null

二进制文件fread 判断返回值是否小于要读的个数

五、文件的随机读写

5.1fseek

根据文件指针的位置和偏移量来定位文件指针

这里我们通过改变偏移量为6将指针移动到w的位置修改成the world

5.2 ftell

返回文件指针相对起始位置的偏移量

5.3 rewind

将文件指针的位置回到起始位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶丨之秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值