目录


⌛前言⌛

在之前的学习过程中,我们所编写的程序在执行过程中所产生的数据及结果都只是临时存放在内存区域,一旦程序运行结束,该程序所涉及的内存空间全部返回给操作系统。这时候如果我们想要去查看这些数据和结果,显然是做不到的!

那有没有什么方法能够解决这个问题呢?也就是说可以将程序运行过程所产生的过程数据和结果数据都保存起来,即便程序结束,我们也可以找到这些内容,甚至是在之后所写的其他程序中也能继续使用这些内容。

答案当然是-- - 有,这也就是我们这篇文章所要讨论的东西–文件。

【C语言进阶】—— 文件操作(详解)_文件操作


一、什么是文件

1、站在程序设计角度,文件有两种:程序文件、数据文件

程序文件:

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

数据文件:
文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。文件名

2、文件名

一个文件要有一个唯一的文件标识,以便用户识别和引用。
文件名包含3部分:文件路径+文件名主干+文件后缀

例如: c:\code\test.txt

文件路径:c : \code
文件名主干:test
文件后缀:.txt

为了方便起见,文件标识常被称为文件名

3、文件类型
根据数据的组织形式,数据文件被称为文本文件或者二进制文件

数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是二进制文件
如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件。

4、文件存储

一个数据在内存中存储时,字符一律以ASCII形式存储,数值型数据既可以用ASCII形式存储,也可以使用二进制形式存储

10000(十进制)在内存中的存储图解示例:
【C语言进阶】—— 文件操作(详解)_流(steam)_02

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

如有整数10000,如果以ASCII码的形式输出到磁盘,则磁盘中占用5个字节(每个字符一个字节),而二进制形式输 出,则在磁盘上只占4个字节(VS2013测试)。

【C语言进阶】—— 文件操作(详解)_C语言_03

#include <stdio.h> 
int main()
{
    int a = 10000;
    FILE* pf = fopen("test.txt", "wb");
    fwrite(&a, 4, 1, pf); //二进制的形式写到文件中        
    fclose(pf);
    pf = NULL;
    return 0;
}

【C语言进阶】—— 文件操作(详解)_文件指针_04