1. 为什么需要文件操作
在C语言编程中,文件操作是每个开发者都必须掌握的核心技能。想象一下,你正在开发一个学生成绩管理系统,如果没有文件操作功能,程序关闭后所有数据都会丢失。这就像用粉笔在黑板上写字,擦掉后就再也找不回来了。
文件操作让我们的程序具备了"记忆"能力。通过文件,我们可以:
- 永久保存程序运行结果
- 实现不同程序间的数据共享
- 处理大量数据而不占用过多内存
- 构建更复杂的应用程序(如数据库系统)
我在实际开发中发现,90%的商业应用都离不开文件操作。特别是在嵌入式系统中,文件操作更是与硬件交互的重要桥梁。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 文件操作基础概念
2.1 文件类型
C语言主要处理两种文件类型:
- 文本文件:人类可读的ASCII字符,如.txt文件
- 二进制文件:直接存储内存数据的原始形式,如.jpg图片
注意:Windows和Linux对文本文件的换行符处理不同(\r\n vs \n),这是跨平台开发时常见的坑。
2.2 文件指针
FILE结构体指针是C语言文件操作的核心。它就像图书馆的管理员,记录着:
- 当前读写位置
- 文件状态信息
- 缓冲区信息
c复制FILE *fp; // 声明文件指针
3. 文件操作全流程
3.1 打开文件
fopen()函数是文件操作的起点,其原型为:
c复制FILE *fopen(const char *filename, const char *mode);
常见打开模式:
| 模式 | 说明 | 文件存在 | 文件不存在 |
|---|---|---|---|
| "r" | 只读 | 打开 | 返回NULL |
| "w" | 只写 | 清空 | 创建 |
| "a" | 追加 | 追加 | 创建 |
| "r+" | 读写 | 打开 | 返回NULL |
| "w+" | 读写 | 清空 | 创建 |
| "a+" | 读写 | 追加 | 创建 |
实际开发中,我强烈建议每次打开文件后都检查是否成功:
c复制FILE *fp = fopen("data.txt", "r");
i
