一.文件的分类
文件可以分为程序文件和数据文件:程序文件是指可以实现一定功能的文件。包括源程序文件(后缀为.c)、可执行程序、目标文件。数据文件是指用于存储一定数据的文件,本文章所讲的内容是针对于数据文件。
二.文件名
每一个文件都要有一个单独的名字,称为文件名,每个文件名的组成包括三个部分文件路径+文件名主干+文件后缀。例如:c:\code\test.txt。但是在电脑中要看见完整的文件名字,需要点开文件拓展名。
这是未打开拓展名之前
只是打开文件拓展名之后
三.FILE*指针
在C语言中,为了方便使用者对于文件进行使用,构建了一个FILE*类型的指针,这个指针会 根据文件的状态构建文件信息区(结构体),并指向该结构体,我们通过改变结构体内部的数据来改变文件。
FILE*pf;
四.文件的打开与关闭
文件的打开与关闭又需要通过两个函数,分别是:fopen,fclose
打开文件时,如果程序与文件在同一个目录里面,就可以省略前面的路径,写入文件的后缀便可以打开。
而文件又可以通过多种方式打开
例如:
具体运用
这是以读的形式打开文件,我们先在外面将文件进行编辑
读完以后不会改变文件
但是我们采用写的方式打开文件
打开文件的时候,就会清空文件的信息
五.文件的顺序读写
上面是打开了文件,但是要往文件里写入信息或者读取文件里的信息还需要下面几个函数的帮忙。
fgets函数 是对文件内的字符进行一个一个的读取
具体运用如:
但它返回的类型是一个字符的ASCII码值,需要定义一个int的变量来进行接收。
fputc函数是一个向文件内写入字符的函数
此时打开文件就可以看见写入的字符
它所向文件写入的方式是一个一个的写入。
fgets是向文件里一行一行的读数据,fputs是向文件里一串一串的写入数据
此时文件里的内容是
此时是没有输入换行标志的,所以输入在文件内的数据还是连在一起的,处于同一行
现在文件内的数据便是一行一行的
fgets函数需要输入读入此行字符的元素,输入5则会读入4个,因为最后一个用于存放\0
如果读入的字符多于此行的字符,则读完此行字符便不会在进行读取。
fscanf函数是从文件上读取各种数据类型的信息,fprintf函数是向文件内写入各种数据类型的信息
并且两个函数也可直接用在C语言中的打印和接收。
最后剩下的两个函数fread和fwrite是将数据采用二进制的方式写入或者读出文件,并且两个函数处理类型为文件,不是流,而流可以理解为C语言程序输入的数据给屏幕、文件、网络的一个形式
两个函数的介绍
因为是以二进制的方式写入文件,所以直接打开文件可能会看不懂内容。
写入文件
打开文件后可发现文件内部不能直接看懂
读出文件内容
六.文件的随机读取
上面的读取方法都是一个顺着一个字符的写入或者读出,而我们可以采用其他的读取函数利用与头字符的偏移量来对任意位置的数据进行读取。