c语言的文件操作

目录

1.什么是文件?

1.1程序文件

1.2数据文件

2.数据文件的分类

2.1文件名

2.2二进制文件

2.3文本文件

3.文件的打开和关闭

3.1流

3.2标准流

4.文件指针

5.如何进行文件的打开与关闭?

6.文件的顺序读写

6.1顺序读写函数介绍

6.1.1 fgetc函数

6.1.2 fputc函数

6.1.3 fgets函数

6.1.4 fputs函数

6.1.5 fscanf 函数

6.1.6 fprintf函数

6.1.7 fread函数

6.1.8 fwrite函数

6.2 顺序读写函数的总结

7.scanf/fscanf/sscanf ;printf/fprintf/sprintf两组函数的对比

8 文件的随机读取

8.1 fseek函数

8.2 ftell函数

8.3 rewind 函数

9. 文件读取结束的判定

9.1 feof函数

9.2 ferror函数

9.3 feof与ferror函数的代码演示

10. 文件缓存区


1.什么是文件?

磁盘(硬盘)上的文件就是文件,从文件的功能分有两种文件一种是程序文件,一种是数据文件

1.1程序文件

程序⽂件包括源程序⽂件(后缀为.c),⽬标⽂件(windows环境后缀为.obj),可执⾏程序(windows
环境后缀为.exe)。

1.2数据文件

⽂件的内容不⼀定是程序,⽽是程序运⾏时读写的数据,⽐如程序运⾏需要从中读取数据的⽂件,或
者输出内容的⽂件。 这个我们读取的数据就是数据文件。

2.数据文件的分类

2.1文件名

在分类之前我们先来了解一下什么是文件名

⼀个⽂件要有⼀个唯⼀的⽂件标识,以便⽤⼾识别和引⽤。
⽂件名包含3部分:⽂件路径+⽂件名主⼲+⽂件后缀
例如: c:\code\test.txt
为了⽅便起⻅,⽂件标识常被称为⽂件名。

2.2二进制文件

数据在内存中以⼆进制的形式存储,如果不加转换的输出到外存的⽂件中,就是⼆进制⽂件。
下面我们用vs打开一个二进制文件来看一下
在vs中我们可以右键单击这个文件选择用二进制编译器打开
我们知道8的二进制位是0000 0000 0000 0000 0000 0000 0000 1111每四位换成一个16进制也就是00 00 00 08由于vs中是小端存储所以写到文件中就是08 00 00 00。

2.3文本文件

数据在内存中以⼆进制的形式存储,如果以ASCII码值存到外存上就是文本文件。

下面来看一下10000的存储:

3.文件的打开和关闭

3.1流

在c语言中我们针对各种数据的输入输出都是依靠流的,我们想要获取流里面的数据或者想要向流中输入数据都要先打开流

3.2标准流

我们不难发现当我们从键盘上输入输出输出数据时,我们并没有进行打开流的操作,这是因为在程序执行就默认打开了3个流也就是我们说的标准流。

stdin - 标准输⼊流,在⼤多数的环境中从键盘输⼊,scanf函数就是从标准输⼊流中读取数据。
stdout - 标准输出流,⼤多数的环境中输出⾄显⽰器界⾯,printf函数就是将信息输出到标准输出
流中。
stderr - 标准错误流,⼤多数环境中输出到显⽰器界⾯。
这是默认打开了这三个流,我们使⽤scanf、printf等函数就可以直接进⾏输⼊输出操作的。
stdin、stdout、stderr 三个流的类型是: FILE* ,通常称为⽂件指针。
C语⾔中,就是通过 FILE* 的⽂件指针来维护流的各种操作的。

4.文件指针

上述我们知道了c语言中我们用FILE *的指针来维护流

那这个FILE *到底是啥呢?我们来看一下

每个被使⽤的⽂件都在内存中开辟了⼀个相应的⽂件信息区,⽤来存放⽂件的相关信息(如⽂件的名
字,⽂件状态及⽂件当前的位置等)。这些信息是保存在⼀个结构体变量中的。该结构体类型是由系
统声明的,取名 FILE如下图所示:
编译器不同文件信息区里面的内容也不相同,我们作为使用者不需要关注这些细节。
上图所示,每个文件都有自己的文本信息区是一个名为FILE的结构体类型,文件指针就是指向这里的文本信息区。以便我们进行维护。

5.如何进行文件的打开与关闭?

这里我们需要介绍两个函数:

ANSI C 规定使⽤ fopen 函数来打开⽂件, fclose 来关闭⽂件。
mode表⽰⽂件的打开模式,下⾯都是⽂件的打开模式:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值