C语言进阶:文件管理(一)
文件是相关数据的有序集合,是计算机程序设计中的核心概念之一。在日常计算机使用中,我们本质上是在与各类文件进行交互:
- 数据管理场景下,可通过在线协作文档(如腾讯文档)或本地电子表格(如Excel)高效完成数据采集与整理;
- 创意设计领域,Photoshop等工具则通过对图片文件的编辑实现视觉内容的创作与优化。
一、文件的使用与分类
在计算机中,所有的文件都可以通过流进行输入、输出操作。与文本流和二进制流相对应,文件可以分为文本文件和二进制文件两种主要类别。文本文件也可以叫做ASCII文件,保存每一个字符对应的字节,存放对应的ASCII编码,而二进制文件是按照二进制编码方式存储的。
二、文件的打开和关闭
在C语言中,文件的打开与关闭操作是通过标准库函数来实现的。常用的函数包括 fopen用于打开文件,fclose用于关闭文件。这些函数定义在 <stdio.h> 头文件中,使用它们可以方便地对文件进行读写等操作,是文件处理的基础。
2.1、文件指针
typedef struct {short level;unsigned flags;char fd;unsigned char hold;short bsize;unsigned char* buffer;unsigned ar* curp;unsigned istemp;short token;
} FILE;
上述就是一个C语言中系统定义的一个结构体类型FILE,编写程序时,可以用它来定义文件指针,如下所示:
FILE *file;
注意:FILE类型的变量比可以用来直接操作文件。FILE类型数据对象的位置是通过库函数来确定的,所以在 C 语言中,只能通过 FILE * 类型的指针来操作文件。
2.2、fopen函数
fopen 是 C 标准库(stdio.h)中用于打开文件并建立文件流的核心函数。通过它,程序可以以不同的模式(如读取、写入、追加等)访问文件,从而实现数据的输入/输出(I/O)操作。
函数原型如下所示:
FILE *fopen(const char *filename, const char *mode);
- 参数:
- filename:要打开的文件路径(可以是相对路径或绝对路径)。
- mode:文件打开模式(如 "r"读取、"w"写入等)。
- 返回值:
- 成功时返回指向 FILE类型对象的指针(即文件流指针),用于后续文件操作。
- 失败时返回 NULL(如文件不存在、权限不足等),此时可用 perror()或 strerror(errno)查看错误原因。
文件打开模式(mode)有以下几种:
| 模式 | 类型 | 是否清空文件 | 文件是否必须存在 | 适用场景 |
