前言:
本文主要是介绍关于文件的相关知识,可以增进对文件——这个电脑上随处可见的元素的了解。
为什么使用文件?
我们平时使用电脑,实际上是对电脑的数据进行一系列处理,比如读取、写入等基础操作。在这些数据当中,既有电脑中的固有数据,也有从网络上传输来的数据。这些数据记录着各种各样的信息,因此需要分类;如果需要保存数据,还要将数据持久化而避免被删除。
所以,文件就出现了。使用文件可以将数据分开地保存在电脑的硬盘中,很好地做到了数据的持久化和分类。
文件的基本知识:
在程序设计中,会按照文件的功能将其分类为程序文件和数据文件。
下面我就会分别介绍这两类文件。
程序文件:
对于C语言而言,程序文件由以下部分组成:
- 程序源文件(后缀为.c C++后缀为.cpp)
- 目标文件(在windows环境中后缀为.obj)
- 可执行程序(在windows环境中后缀为.exe)
数据文件:
文件的内容不一定是程序的源代码,还可以是程序运行时所读写的数据。
在了解文件操作的知识之前,程序运行时的数据读写都是以终端为对象,也就是作为终端的键盘输入数据再传给作为终端的显示器。在这个过程中,没有将传入的数据保存到硬盘。
所谓的数据文件,就是在数据输出的对象为硬盘时所产生的文件。
文件名:
文件保存在硬盘中,正如程序中的变量在内存中,必须有一个唯一的标识正确地记录数据所在地才能使用。
文件名包含三部分:
1.文件路径
2.文件主干
3.文件后缀
用一图来表示:
程序中文件的打开和使用:
文件指针:
每个被使用的文件都会在内存中开辟相应的文件信息区来存放文件的相应信息区中(比如文件的名称、当前所在位置等,不过这些不是这篇文章所要讲解的内容),这些信息是保存在一个FILE结构体变量中。因此,如果想在程序中使用文件,就可以使用FILE指针来指向这个结构体,进而关联到我们想要的文件。
创建一个文件指针变量:
FILE* pf;
不同的文件有不同的文件信息区:
文件的打开:
在了解文件与程序的关联后,就要知道怎么通过文件指针来打开文件。
fopen():
使用fopen()来打开文件:
FILE* pf = fopen(const char* filename, const char* mode);
其中,filename为文件名,mode为模式,它们都是以字符串的形式传递给fopen。
mode是规定的好的,顾名思义fopen对于要操作的文件有很多种打开方式,其中最常用的有三种:
1.只读:“r” 打开一个文件,并将文件里的数据传输给程序。
2.只写:“w” 打开一个文件,并将程序里的数据传输给文件。
3.追加:“a” 打开一个文件,将光标放在文件尾,并添加数据。
其中要注意的有:
1、无论是只读还是只写,它们只能“单向实现”,若在只读模式中使用了可以输出的语句,那该语句无效(不报错)。
2、若指定的文件不存在,只读模式下会报错,只写和追加模式下会建立一个新文件。
3、在只写模式下,若存在指定的文件,其会将其删除并建立新文件。
还有很多模式,但本文就不补充了,有兴趣可以深入了解。
文件的关闭:
fclose():
文件的关闭很简单,看下列代码:
fclose(FILE* p);//1
p =