C++ 文件操作全攻略:打开、读取、写入、关闭详解
什么是 C++ 文件处理?
文件处理让你将程序数据持久化到存储设备。通过将程序输出导向文件,可对数据进一步操作、分析或归档。
流 是表示字符连续源或目标的抽象。C++ 提供强大的 fstream 库,提供类与函数无缝操作文件。
本教程你将学到:
- C++ 文件处理的定义
fstream库及其核心类- 以各种模式打开文件
- 安全关闭文件
- 向文件写入数据
- 从文件读取数据
fstream 库
fstream 库提供三个核心类:
- ofstream – 输出流,用于创建和写入文件。
- ifstream – 输入流,用于读取现有文件。
- fstream – 双向流,同时支持输入输出操作。
快速视觉参考:

使用这些类需包含 fstream 头文件,若需控制台输出另包含 iostream。
如何打开文件
文件操作前必须打开。写入用 ofstream,读取用 ifstream,读写兼用用 fstream。每个类提供 open() 成员:
open(file_name, mode);
- file_name – 目标文件路径或名称。
- mode – 可选;指定访问类型。常用标志:
| 值 | 说明 |
|---|---|
| ios::app | 追加模式 – 写入内容添加到文件末尾 |
| ios::ate | 打开并立即定位到文件末尾 |
| ios::in | 以读取模式打开 |
| ios::out | 以写入模式打开 |
| ios::trunc | 截断现有文件至零长度 |
多个标志可用位或运算符(|)组合。
示例 1:创建文件
#include <iostream> #include <fstream> using namespace std; int main() { fstream my_file; my_file.open("my_file", ios::out); if (!my_file) { cout << "File not created!"; } else { cout << "File created successfully!"; my_file.close(); } return 0; }
输出:

运行程序截图:

代码走读:
- 包含
iostream用于控制台 I/O。 - 包含
fstream用于文件流。 - 使用
std命名空间简化代码。 - 实例化
fstream对象my_file。 - 以写入模式(
ios::out)打开文件。 - 检查打开是否成功;失败则报错。
- 成功则打印确认并关闭文件。
- 返回
0表示正常结束。
如何关闭文件
C++ 会在程序退出时自动刷新并关闭流,但显式在最后操作后关闭文件是良好实践。
close() 成员可用于 fstream、ofstream、ifstream:
void close();
如何写入文件
写入使用流插入运算符(<<)。存储的文本需加引号或直接流式写入。
示例 2:写入文本
#include <iostream> #include <fstream> using namespace std; int main() { fstream my_file; my_file.open("my_file.txt", ios::out); if (!my_file) { cout << "File not created!"; } else { cout << "File created successfully!"; my_file << "Guru99"; my_file.close(); } return 0; }
输出:

代码截图:

如何读取文件
读取使用流提取运算符(>>),类似 cin。数据流入类型匹配的变量。
示例 3:读取字符
#include <iostream> #include <fstream> using namespace std; int main() { fstream my_file; my_file.open("my_file.txt", ios::in); if (!my_file) { cout << "No such file"; } else { char ch; while (1) { my_file >> ch; if (my_file.eof()) break; cout << ch; } } my_file.close(); return 0; }
输出:

运行代码截图:

代码走读:
- 包含
iostream和fstream。 - 以读取模式(
ios::in)打开文件。 - 检查文件存在;不存在则提示用户。
- 逐字符读取直到 EOF。
- 将每字符打印到控制台。
- 关闭流。
- 返回
0。
总结
- 文件处理将程序输出持久化到耐久存储。
- 流抽象了输入输出设备。
fstream库提供所有常见文件操作的类。- 源文件顶部务必包含
<fstream>(如需控制台输出再加<iostream>)。 - 以适当模式打开文件,执行操作,随后关闭流。
C语言
- 千分尺详解:读数方法与精密测量应用指南
- 平锉刀:木工金属加工必备修整工具全解析
- CNC 图纸识读精通:现代机工必备技能
- C语言文件处理完全指南:fopen、fprintf、fread 与 fseek
- C++ 异常处理实战:try、catch、throw 完整指南与示例
- C 语言注释完全指南:编写清晰高效的代码备注
- C 语言头文件详解:类型、用法与最佳实践
- C++文件I/O完全指南:fstream读写、打开模式、定位指针与完整实例
- 掌握 C++ 信号处理:安全中断管理与优雅程序终止
- 用 VHDL TEXTIO 库从文本文件初始化 FPGA 块 RAM
- Python 文件 I/O:掌握输入输出操作
- Java BufferedReader 读取文件:实战指南与示例