C++ 文件读写操作总结 C++ 中的文件读写操作是编程过程中常用的操作之一,C++ Builder 提供了多种方法对文件进行操作。在本节中,我们将对 C++ 中的文件读写操作进行总结。 基于 C 的文件操作 在 ANSI C 中,对文件的操作分为两种方式,即流式文件操作和 I/O 文件操作。在流式文件操作中,使用 FILE 结构体来表示文件对象,该结构体包含了文件操作的基本属性。 FILE 结构体的定义如下: typedef struct { int level; /* fill/empty level of buffer */ unsigned flags; /* File status flags */ char fd; /* File descriptor */ unsigned char hold; /* Ungetc char if no buffer */ int bsize; /* Buffer size */ unsigned char _FAR *buffer; /* Data transfer buffer */ unsigned char _FAR *curp; /* Current active pointer */ unsigned istemp; /* Temporary file indicator */ short token; /* Used for validity checking */ } FILE; 流式文件操作的常用函数有: * fopen():打开流 * fclose():关闭流 * fputc():写一个字符到流中 * fgetc():从流中读一个字符 * fseek():在流中定位到指定的字符 * fputs():写字符串到流 * fgets():从流中读一行或指定个数的字符 * fprintf():按格式输出到流 * fscanf():从流中按格式读取 * feof():到达文件尾时返回真值 * ferror():发生错误时返回其值 * rewind():复位文件定位器到文件开始处 * remove():删除文件 * fread():从流中读指定个数的字符 * fwrite():向流中写指定个数的字符 * tmpfile():生成一个临时文件流 * tmpnam():生成一个唯一的文件名 fopen() 函数 fopen() 函数的原型是:FILE *fopen(const char *filename, const char *mode),它实现三个功能:打开一个流、把一个文件和此流相连接、返回一个 FILE 指针。 fopen() 函数的参数 filename 指向要打开的文件名,mode 表示打开状态的字符串,其取值如下表: | 字符串 | 含义 | | --- | --- | | "r" | 以只读方式打开文件 | | "w" | 以只写方式打开文件 | | "a" | 以追加方式打开文件 | | "r+" | 以读/写方式打开文件,如无文件出错 | | "w+" | 以读/写方式打开文件,如无文件生成新文件 | fopen() 函数的返回值 fopen() 函数返回一个 FILE 指针,如果成功,返回一个非空指针;否则,返回 NULL。 fclose() 函数 fclose() 函数的原型是:int fclose(FILE *fp),它关闭用 fopen() 打开的文件。如果成功,返回 0,失败返回 EOF。 在程序结束时一定要记得关闭打开的文件,不然可能会造成数据丢失的情况。 流式文件操作的优点和缺点 流式文件操作的优点是: * 简单易用 * 高效 流式文件操作的缺点是: * 不适合大文件操作 * 不适合并发访问 基于 C++ 的文件操作 基于 C++ 的文件操作使用 iostream 头文件中的类和对象来进行文件操作。常用的类和对象有: * ifstream:输入文件流 * ofstream:输出文件流 * fstream:输入/输出文件流 基于 C++ 的文件操作的优点是: * 面向对象编程 * 高效 * 灵活 基于 C++ 的文件操作的缺点是: * 相对复杂 * 需要了解 C++ 的面向对象编程机制














剩余20页未读,继续阅读


- 粉丝: 5
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- MATLAB环境下电动汽车续航里程影响因素分析与优化策略研究
- 基于 YOLOV3 算法的目标检测实现方案
- 西门子Smart系列水处理系统:反渗透+精混床除盐水工艺的自动化控制案例
- 基于JSP+Servlet实现的污水处理系统+源码(毕业设计&课程设计&项目开发)
- FPGA实现MIL-STD-1553B协议的BC、BM、RT源码解析及应用 实时通信
- 单周期控制的无桥CukPFC变换器:实现高频率(100k)的稳定电源转换
- Abaqus模拟中水力裂缝与天然裂缝相交的cohesive行为
- 电力电子MATLABSimulink仿真:三相PWM整流器及其多种控制方法的研究
- 基于ASP.NET MVC与SQL Server的C#图书及借阅管理系统的设计与实现 - Entity Framework 高级版
- 目标检测-YOLOV3实现
- 结构光3D测量技术:单双目编码解码与标定重建的应用实现
- 电力电子领域Buck双闭环控制降压电路PI调节器的设计与建模及其应用 Simulink v2.5
- 基于51单片机的测速码表仿真:Keil程序源码与Proteus仿真文件解析
- 基于C++ OpenCV 和 Qt 实现人脸(刷脸)登录+源码+项目文档+数据集(毕业设计&课程设计&项目开发)
- FPGA IP源码解密技术:从加密IP文件恢复Verilog与VHDL源代码的方法与挑战
- 基于CSI的WiFi室内被动式目标检测技术


