C语言文件操作学习笔记
- 创业
- 2025-08-23 04:39:02

C语言文件操作学习笔记
目录 文件基本概念文件的打开与关闭文件的顺序读写文件的随机读写常用文件操作函数总结
文件基本概念 1. 什么是文件? 文件:存储在外部存储器(如硬盘)上的数据集合。输入输出流:数据像流水一样从一处流向另一处,C语言将文件视为字符(字节)序列。 2. 文件分类 类型特点示例文本文件以ASCII码形式存储,可读性强.txt, .c二进制文件以二进制形式存储,节省空间.dat, .exe 3. 文件指针 FILE结构体:存储文件的详细信息(如文件名、状态、当前位置等)。定义文件指针:FILE *fp; // fp指向文件缓冲区的首地址 4. 文件缓冲区 缓冲文件系统:系统为每个文件开辟内存缓冲区,数据先写入缓冲区,满后再写入外存。
文件的打开与关闭 1. 打开文件:fopen() FILE *fopen(const char *文件名, const char *打开模式); 文件打开模式 模式说明"r"只读,文件不存在则失败"w"只写,文件存在则清空,不存在则创建"a"追加写,文件不存在则创建"r+"读写,文件必须存在"w+"读写,文件存在则清空,不存在则创建 "a+"读与追加写,不存在则创建"b"二进制模式(需与其他模式组合,如"rb", "wb") 示例:安全打开文件 FILE *fp; if ((fp = fopen("test.txt", "r")) == NULL) { printf("无法打开文件!\n"); exit(0); // 终止程序 } 2. 关闭文件:fclose() int fclose(FILE *fp); // 成功返回0,失败返回EOF(-1)
文件的顺序读写 1. 字符读写函数 函数功能示例fputc(c, fp)写入一个字符到文件fputc('A', fp);fgetc(fp)从文件读取一个字符char c = fgetc(fp); 示例:复制文件内容 #include <stdio.h> int main() { FILE *in = fopen("input.txt", "r"); FILE *out = fopen("output.txt", "w"); char c; while ((c = fgetc(in)) != EOF) { fputc(c, out); } fclose(in); fclose(out); return 0; } 2. 字符串读写函数 函数功能示例fgets(s, n, fp)从文件读取字符串(最多读n-1字符)fgets(buffer, 100, fp);fputs(s, fp)将字符串写入文件fputs("Hello World", fp);
文件的随机读写 1. 文件指针定位函数 函数功能示例fseek(fp, offset, 起始位置)移动文件指针到指定位置fseek(fp, 100L, SEEK_SET);rewind(fp)将文件指针重置到文件开头rewind(fp);ftell(fp)返回当前指针位置(字节数)long pos = ftell(fp); 起始位置常量 SEEK_SET(0):文件开头SEEK_CUR(1):当前位置SEEK_END(2):文件末尾 2. 示例:随机读取学生数据 #include <stdio.h> struct Student { char name[20]; int age; }; int main() { FILE *fp = fopen("students.dat", "rb"); struct Student s; // 读取第3个学生的数据(索引从0开始) fseek(fp, 2 * sizeof(struct Student), SEEK_SET); fread(&s, sizeof(struct Student), 1, fp); printf("姓名:%s,年龄:%d\n", s.name, s.age); fclose(fp); return 0; }
常用文件操作函数 1. 数据块读写函数 函数功能示例fread(buffer, size, count, fp)从文件读取数据块fread(&stu, sizeof(Student), 1, fp);fwrite(buffer, size, count, fp)向文件写入数据块fwrite(&stu, sizeof(Student), 1, fp); 2. 文件结束判断:feof() while (!feof(fp)) { // 循环直到文件结束 // 读取操作 }
总结 关键知识点 文件操作步骤:打开 → 操作 → 关闭。打开模式:"r"、"w"、"a"等需根据需求选择。顺序读写:逐个字符或字符串处理。随机读写:通过fseek定位指针,直接访问任意位置。二进制文件:适合存储结构体等复杂数据。 注意事项 错误处理:始终检查文件是否成功打开。缓冲区刷新:关闭文件前确保数据写入外存。指针管理:避免越界操作导致数据损坏。
练习题:编写程序,从键盘输入5个学生的信息(姓名、年龄),保存到文件students.dat中,并读取第3个学生的信息显示在屏幕上。
C语言文件操作学习笔记由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“C语言文件操作学习笔记”