前言在C语言中文件操作是数据持久化的核心也是期末考试、上机实验、课程设计的必考点。本文从基础到实战把所有文件相关知识点一次性讲透。一、文件操作基本流程固定四步定义文件指针 FILE *fp;打开文件 fp fopen(文件名, 打开模式);读写数据关闭文件 fclose(fp);打开文件必须判断是否成功二、文件打开模式紧凑表格表格三、单个字符读写fgetc / fputcfputc(ch, fp)写入一个字符fgetc(fp)读取一个字符读到末尾返回 EOF四、字符串读写fgets / fputsfputs(str, fp)写入字符串fgets(buf, size, fp)读取一行自动加 \0五、文本格式化读写fprintf / fscanf六、二进制读写fread / fwrite重点直接搬运内存字节不翻译、不转格式。典型用法结构体一次性读写。七、随机读写fseek / ftell / rewindrewind回到文件开头ftell获取当前位置fseek跳转到任意位置SEEK_SET 文件开头SEEK_CUR 当前位置SEEK_END 文件末尾八、文件结束判定非常重要文本文件判断结束fgetc 读到最后会返回 EOF-12. 二进制文件判断结束必须使用 feof(fp) 判断3. 注意feof() 必须在读操作之后使用不能提前判断。九、文件缓冲区面试/考试常考什么是文件缓冲区系统会自动为每个打开的文件开辟一段内存空间叫做文件缓冲区。为什么需要缓冲区硬盘读写速度很慢缓冲区可以减少直接访问硬盘的次数提高效率。缓冲区刷新机制什么时候真正写入文件缓冲区满了调用 fflush(fp)调用 fclose(fp)程序正常结束一句话理解数据先写到缓冲区满了/关闭文件才真正落到硬盘。十、为什么读一个字符会自动跳到下一个因为 FILE 内部有一个文件位置指针。每次读写系统都会自动后移指针不需要手动 。十一、所有文件函数一句话总结fputc/fgetc单个字符fputs/fgets字符串/一行fprintf/fscanf格式化文本fread/fwrite二进制整块数据rewind回到开头ftell获取当前位置fseek随机跳转feof判断文件结束缓冲区提高读写效率十二、注意事项打开文件必须判断 fp NULL操作完必须 fclose(fp)文件指针不能手动 二进制文件记事本打开是乱码feof() 必须在读之后判断数据先存缓冲区再写入硬盘结语文件操作是编程中数据持久化的基础也是考试、上机、课程设计的高频考点。把这篇内容吃透以后不管是写管理系统、读写配置文件还是处理大量数据都会非常轻松。如果这篇文章对你有帮助欢迎 点赞 、收藏 、关注我 后续会持续更新 C 语言从入门到精通、数据结构、算法、期末复习、上机真题 等干货内容跟着我编程不迷路一起稳步变强
阅读完成 · 觉得有帮助?