C语言文件操作(一)

我们之前写程序,得到运行结果,退出运行,运行结果就不见了,因为运行的结果放到了内存中,退出程序的时候数据就会消失,等下一次运行又要重新输入数据,这样就显得很麻烦。

那么我们如何保存之前的运行结果呢

将运行的结果放到磁盘中,然后我们的运行结果就会保存,我们下一次运行程序,如果要使用之前的结果,将磁盘的数据读取到程序中,这样就使得程序更加持久。这样的操作就是叫文件操作

文件的打开和关闭

文件指针

每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件的状态及文件的当前位置等)。这些信息是保存在一个结构体变量中的,这个结构体类型是有系统声明的,取名FILE

我们每打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构变量,并且补充信息,使用不必关心细节。

一般都是通过一个FILE的指针来维护这个FILE结构的变量,这样使用起来更加方便。

FILE指针变量的创建

定义pf是一个指向FILE类型数据的指针变量。pf指向文件信息区,通过pf来访问文件信息区内容,然后就可以访问文件内容了。也就是说通过文件指针变量能够找到与它相关联的文件。

文件的打开和关闭

文件在读写之前需要打开文件,在使用结束之后应该关闭文件。

在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针与文件的关系。

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

fopen函数

假如打开文件失败怎么办

我们建这个文件

我们怎么写内容到文件和读文件的内容呢

文件的顺序读写

我们一个一个来使用这些函数

fgetc函数

通过解释可以看出

fgetc是读一个字符,那么我们怎么读里面所有字符呢

应该考虑到循环了

我们读取字符失败返回EOF

这样的操作也不怎么好,后面我们会介绍一个函数专门读字符串的

fputc函数

我们也可以写一堆字符

fgets函数

假如内容为

我们的读取结果是什么

fgets函数是文本行读取,只能读一行的数据,第一行只有字符a,所以我们只能读取到a

fputs函数

fscanf函数

了解fsanf函数,我们可以通过类比的方法

fscanf函数与scanf函数的参数差异就是多了一个结构体类型指针

我们怎么使用这个函数呢

fscanf叫格式化输入函数,可以读取数据

fscanf读取100到a中

将hello1231.123当成了字符串读取到arr中

换行默认字符串结束,所以3.14读取到f中

之后打印出来,可以看出fscanf是按顺序读取的,以换行为结束标志

fprintf函数

fprintf函数叫格式化输出函数

它怎么实现的,我们类比printf函数

好像差不多,和fscanf函数与scanf对比一样

我们通过例子来看看

fprintf把数据写入文件

fread函数

fread函数得功能是二进制输入,即读取二进制数

fwrite函数

好像fwrite里面的参数贺fread函数一样哎,我们怎么去使用

fwrite是写二进制到文件里面

我们缕一缕里面参数

sscanf函数

我们怎么去使用sscanf函数,它与scanf函数有什么区别

scanf函数是从键盘获取数据,sscanf是从“2022helloworld”获取数据,按数顺序获取

与scanf函数一样读取字符串时遇到空格结束

sprintf函数

怎么使用

printf函数将数据读取到屏幕,sprintf函数读取到arr字符数组内


下期预告

文件的随机读写

文本文件和二进制文件

文件读取结束的判定

文件缓冲区

  • 21
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值