C语言文件的操作(一)

1. 为什么使用文件

        我们在学习C语言过程中发现,当我们所写的程序退出后,我们所写的数据就不存在了,下次运行程序的时候,还需要重新录入数据,我们使用文件就可以将数据直接存放在电脑的硬盘上,做到了数据的持久化。

2.什么是文件        

        说到文件我们首先应该先知道什么是文件,即存储在磁盘上的文件就是我们所说的文件。

在程序中,从文件功能的角度来把文件分为两类:

2.1 程序文件

         包括源程序文件(.c),目标文件(.obj),可执行程序(.exe)

2.2 数据文件

        程序运行时读写的数据,或者输出内容的文件。
我们所讨论的主要是数据文件。在以往学习的C程序中,都是以终端为输出对象的(从键盘输入,运行结果到显示器上),我们还可以把信息输出到磁盘中,需要的时候再把数据读到内存中使用,这里所处理的就是数据文件。

2.3文件名

一个文件要有一个 唯一的 文件标识,以便用户识别和引用。
         (文件标识也就是我们所说的文件名)
文件名包含 3 部分:文件路径 + 文件名主干 + 文件后缀

3. 文件的打开和关闭

3.1文件指针

        每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息。这些信息是保存在一个结构体变量中的。该结构体类型是由系统声明的,取名FILE.一般情况下都是通过通过FILE指针来维护这个结构的   FILE* pf ——这就是一个文件指针变量, 通过文件指针变量能够找到与它关联 的文件

3.2文件的打开与关闭

文件在读写之前需要打开文件,使用结束后需要关闭文件,规定使用fopen函数来打开文件,fclose来关闭文件

 

r 只读打开一个已有的文本文件,允许读取文件。
w 只写打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会从文件的开头写入内容。如果文件存在,则该会被截断为零长度,重新写入。
a 追加打开一个文本文件,以追加模式写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会在已有的文件内容中追加内容。
r+ 读写打开一个文本文件,允许读写文件。
w+ 读写打开一个文本文件,允许读写文件。如果文件已存在,则文件会被截断为零长度,如果文件不存在,则会创建一个新文件。
a+ 读写打开一个文本文件,允许读写文件。如果文件不存在,则会创建一个新文件。读取会从文件的开头开始,写入则只能是追加模式。
rb  只读
为了输入数据,打开一个二进制文件 ,如果指定文件不存在则会出错。
wb  只写
为了输出数据,打开一个二进制文件,如果文件不存在,则会创建一个新文件。
ab   追加
向一个二进制文件尾添加数据,如果指定文件不存在则会出错。
rb+ 读写
为了读和写打开一个二进制文件,如果指定文件不存在则会出错。
wb+  读写为了读和写,新建一个新的二进制文件,如果文件不存在,则会创建一个新文件。
ab+  读写打开一个二进制文件,在文件尾进行读和写 ,如果文件不存在,则会创建一个新文件。

4. 文件的顺序读写

把信息从文件到内存中——读

把信息从内存到保存到文件中——写

关于 “读” 的一些函数

fgetc —— 字符输入函数

FILE * stream 要读取字符所在文件的一个文件指针,返回值为读取字符的ASCII码的值

fgets —— 文本行输入函数
str 是从文件中读取的字符串,拷贝到str指向的地址;num 读取字符串的个数; stream 为指向想要读取文件的地址的指针

fscanf—— 格式化输入函数
stream 是写入格式化数据的文件指针;format 是写入数据的格式(如:%s、%d……);...为一些其他的参数,数量与其格式说明符一样多,且该参数数已分配存储的指针
fread—— 二进制输入
ptr 所读取数据要存储的内存块中;size ‎要读取的每个元素的大小(单位:字节);count 元素的个数每个元素的大小为字节大小;stream 读取数据的文件指针。

关于 “写” 的一些函数
fputc—— 字符输出函数
character 是要写入的字符。stream 是指向单个字符写入的文件指针。
fputs—— 文本行输出函数
str 是要写入的字符串;stream 是指向写入字符串的文件指针。

fprintf—— 格式化输出函数
stream 是写入格式化数据的文件指针;format 是写入数据的格式(如:%s、%d……);...是一些其他的参数,数量与其格式说明符一样多,是数据的来源

fwrite—— 二进制输出
ptr 指向要写入元素的指针;size 为‎要写入要写入每个元素的大小(单位:字节);count 元素的个数每个元素的大小为字节大小;stream 读取数据的文件指针。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Pride☻

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

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

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

打赏作者

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

抵扣说明:

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

余额充值