C语言文件操作

为什么使用文件?

文件可以保存数据,如果没有文件,我们写的程序的数据保存在电脑内存中,程序结束后,向内存申请的空间就会被操作系统回收,数据就没啦。再次运行是看不到上次数据的,所以想要持久地保存数据,就需要文件了。

文件分类

文件分为程序文件和数据文件。

程序文件包括源程序文件(.c后缀),目标文件(windows环境后缀是.obj),可执行程序文件(后缀.exe)。

数据文件是程序运行时进行读写的数据。数据文件是这里要说的重点。

数据文件

数据文件分为文本文件和二进制文件

文本文件

以ASCII码值存储在外存,存储前转换。文本文件。

二进制文件

以二进制形式存储在内存,不加转换地输出到外存。二进制文件

字符一律以ASCII码值形式存储,数据可以用ASCII形式,也可以用二进制形式。

比如说10000,用ASCII形式,就要占5个字节,用二进制形式,占用4个字节。

C程序对画面、键盘、文件的输入输出都是通过流来操作的。流是一个抽象的名词,用于对各种设备的统称。我们向流里写入数据,读取数据,操作数据。

C语言程序在启动时,默认打开了三个流:

stdin:标准输入流,在大多数环境中从键盘输入。scanf函数就是在标准输入流里读取数据。

stdout:标准输出流,在大多数环境中输出至显示器界面。printf函数就是将信息输出到标准输出流中。

stderr:标准错误流,大多数环境是输出到显示器界面。

stdin  stdout stderr三个流的类型是FILE*,文件指针。

C语言中,就是通过文件指针来维护流的各种操作的。

ps:stdin、stdout、stderr中的std就是standard简写,标准的

文件指针

每个文件都在内存中开辟了一个相应的文件信息区,用来存放文件的信息。这些信息包含在一个结构体中。该结构体由系统声明,取名FILE。

每当打开一个文件,系统会自动创建一个FILE类型的结构体变量,用来操作这个文件。

一般是通过一个FILE的指针来维护这个FILE结构的变量。FILE*

了解就好

文件的打开和关闭

文件的读写

文件的打开和关闭

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

FILE* fopen ( const char* filename, const char *mode);

int fclose (FILE* stream);

fopen的第二个参数是mode,mode表示文件打开模式,有以下几种。

最常见的   r(只读) w(只写) a(追加)。

后面加个b,   rb、wb、ab,多了一层含义“以二进制的形式”。

后面再加个+,  rb+、 wb+  、ab+,多了一层含义“写”

文件的读写

文件的顺序读写

fgetc  fputc            字符输入和输出          读取结束判断是否为EOF

fgets   fputs          文本行输入和输出        读取结束判断是否为NULL

fscanf  fprintf        格式化输入和输出

fread   fwrite        二进制输入和二进制输入    适用于文件

以上都是一对一对使用的。

内容介绍不很全面,以后有新的理解再添加。

你可能感兴趣的:(c语言,开发语言)