C语言文件操作实战教程,新手必看,读写与文件管理详解
本教程系统讲解 C 语言文件操作的实战方法,适合新手和进阶开发者学习。内容涵盖文本文件和二进制文件的打开、读取、写入、关闭及文件管理操作,同时提供实战项目案例,帮助你快速掌握 C 语言文件处理技巧,提高程序的文件操作能力和效率。
正文教程
一、文件操作基础
文件指针 FILE*
#include <stdio.h>
FILE *fp;
fp = fopen("example.txt", "r"); // 以只读方式打开文件
if(fp == NULL) {
printf("文件打开失败 ");
}
打开模式
| 模式 | 说明 |
|------|------|
|"r"| 只读,文件必须存在 |
|"w"| 只写,文件不存在则创建,存在则清空 |
|"a"| 追加写入,文件不存在则创建 |
|"rb"/"wb"/"ab"| 二进制文件读写模式 |
技巧:
打开文件前检查返回值是否为 NULL,避免程序崩溃。
二、文本文件读写
读取文件内容
char buffer[100];
while(fgets(buffer, sizeof(buffer), fp) != NULL) {
printf("%s", buffer);
}
fclose(fp);
写入文件内容
fp = fopen("example.txt", "w");
fprintf(fp, "Hello, C语言文件操作! ");
fclose(fp);
技巧:
使用
fgets避免缓冲区溢出。写入后必须
fclose确保数据保存。
三、二进制文件操作
写入二进制文件
struct Student {
char name[20];
int age;
};
struct Student s = {"Alice", 20};
fp = fopen("student.dat", "wb");
fwrite(&s, sizeof(struct Student), 1, fp);
fclose(fp);
读取二进制文件
struct Student s2;
fp = fopen("student.dat", "rb");
fread(&s2, sizeof(struct Student), 1, fp);
printf("Name: %s, Age: %d ", s2.name, s2.age);
fclose(fp);
技巧:
二进制文件操作效率高,适合结构化数据存储。
注意数据结构对齐和大小端问题。
四、文件指针操作
fseek移动文件指针
fseek(fp, 0, SEEK_END); // 移到文件末尾
long size = ftell(fp); // 获取文件大小
fseek(fp, 0, SEEK_SET); // 回到文件开头
rewind回到文件开头
rewind(fp);
技巧:
fseek+ftell可实现文件随机访问。文件指针操作有助于大文件高效读写。
五、文件实战案例
示例项目:学生成绩管理系统
使用文本文件保存学生信息(姓名、成绩)。
支持增、删、改、查操作。
使用二进制文件实现成绩备份,提高数据安全性。
技巧:
读取文件时注意 EOF 标记。
使用临时文件实现修改功能,避免覆盖原文件导致数据丢失。
六、总结
通过本教程,你掌握了 C 语言文件操作的核心方法,包括文本文件与二进制文件的读写、文件指针操作、随机访问及实战应用。新手可快速上手文件基本操作,进阶用户可实现高效、可靠的文件管理和数据处理功能。