☰
C语言文件操作超详细总结(字符/字符串/文本/二进制/随机读写/文件结束/缓冲区全通关)
2026/10/13 12:25:43 网站建设 项目流程

前言:

在C语言中,文件操作是数据持久化的核心,也是期末考试、上机实验、课程设计的必考点。本文从基础到实战,把所有文件相关知识点一次性讲透。

一、文件操作基本流程(固定四步)

  1. 定义文件指针 FILE *fp;

  2. 打开文件 fp = fopen(文件名, 打开模式);

  3. 读写数据

  4. 关闭文件 fclose(fp);

打开文件必须判断是否成功:

二、文件打开模式(紧凑表格)

表格

三、单个字符读写:fgetc / fputc

  • fputc(ch, fp):写入一个字符

  • fgetc(fp):读取一个字符,读到末尾返回 EOF

    四、字符串读写:fgets / fputs

  • fputs(str, fp):写入字符串

  • fgets(buf, size, fp):读取一行,自动加 \0

    五、文本格式化读写:fprintf / fscanf

    六、二进制读写:fread / fwrite(重点)

直接搬运内存字节,不翻译、不转格式。

典型用法:结构体一次性读写。

七、随机读写:fseek / ftell / rewind

  1. rewind:回到文件开头
  2. ftell:获取当前位置
  3. fseek:跳转到任意位置
  • SEEK_SET 文件开头

  • SEEK_CUR 当前位置

  • SEEK_END 文件末尾

八、文件结束判定(非常重要!)

  1. 文本文件判断结束

fgetc 读到最后会返回 EOF(-1)

2. 二进制文件判断结束

必须使用 feof(fp) 判断

3. 注意

feof() 必须在读操作之后使用,不能提前判断。

九、文件缓冲区(面试/考试常考)

  1. 什么是文件缓冲区?

系统会自动为每个打开的文件开辟一段内存空间,叫做文件缓冲区。

  1. 为什么需要缓冲区?

硬盘读写速度很慢,缓冲区可以减少直接访问硬盘的次数,提高效率。

  1. 缓冲区刷新机制(什么时候真正写入文件)

  2. 缓冲区满了

  3. 调用 fflush(fp)

  4. 调用 fclose(fp)

  5. 程序正常结束

  6. 一句话理解

数据先写到缓冲区,满了/关闭文件才真正落到硬盘。

十、为什么读一个字符会自动跳到下一个?

因为 FILE 内部有一个文件位置指针。
每次读写,系统都会自动后移指针,不需要手动 ++ 。

十一、所有文件函数一句话总结

  1. fputc/fgetc:单个字符

  2. fputs/fgets:字符串/一行

  3. fprintf/fscanf:格式化文本

  4. fread/fwrite:二进制整块数据

  5. rewind:回到开头

  6. ftell:获取当前位置

  7. fseek:随机跳转

  8. feof:判断文件结束

  9. 缓冲区:提高读写效率

十二、注意事项

  1. 打开文件必须判断 fp == NULL

  2. 操作完必须 fclose(fp)

  3. 文件指针不能手动 ++

  4. 二进制文件记事本打开是乱码

  5. feof() 必须在读之后判断

  6. 数据先存缓冲区,再写入硬盘

结语:

文件操作是编程中数据持久化的基础,也是考试、上机、课程设计的高频考点。把这篇内容吃透,以后不管是写管理系统、读写配置文件,还是处理大量数据,都会非常轻松。

如果这篇文章对你有帮助,欢迎 点赞 👍、收藏 📂、关注我 🎯
后续会持续更新 C 语言从入门到精通、数据结构、算法、期末复习、上机真题 等干货内容,跟着我,编程不迷路,一起稳步变强!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询