fstream是C++中用于文件读写的类,包含在头文件中,支持多种模式如读、写、追加和二进制操作,可通过open函数结合ios标志打开文件,读写后需调用close关闭,同时应检查is_open等状态确保操作成功。

在C++中,fstream 是用于文件输入输出操作的核心类,它结合了 ifstream(读取文件)和 ofstream(写入文件)的功能,属于标准库中的
包含头文件与基本声明
使用 fstream 前必须包含对应的头文件:
#include然后可以声明一个 fstream 对象:
std::fstream file;也可以在构造时直接打开文件:
立即学习“C++免费学习笔记(深入)”;
std::fstream file("example.txt", std::ios::in | std::ios::out);打开文件的常用模式
fstream 支持多种打开模式,通过 std::ios 标志指定:
- std::ios::in - 以读取模式打开文件
- std::ios::out - 以写入模式打开文件(会清空原内容)
- std::ios::app - 追加模式,写入内容添加到文件末尾
- std::ios::ate - 打开后立即定位到文件末尾
- std::ios::binary - 以二进制方式操作文件
多个模式可以用 | 符号组合使用。例如:
读写文件操作示例
以下是一个完整示例,演示如何用 fstream 写入并读取文本文件:
include
include
include
int main() {
std::fstream file("test.txt", std::ios::out);
if (file.is_open()) {
file
file
file.close();
}
// 重新以读模式打开
file.open("test.txt", std::ios::in);
if (file.is_open()) {
std::string line;
while (std::getline(file, line)) {
std::cout
}
file.close();
}
return 0;
}
检查文件状态与错误处理
操作文件时应始终检查是否成功打开或执行操作:
- file.is_open() - 判断文件是否成功打开
- file.good() - 所有状态正常
- file.fail() - 操作失败(如格式错误或无法打开)
- file.eof() - 是否到达文件末尾
建议每次打开后都做判断:
if (!file.is_open()) {std::cerr return -1;
}
关闭文件是良好习惯,避免资源泄漏:
file.close();基本上就这些。掌握 fstream 的基本用法后,就能轻松实现配置读取、日志记录、数据存储等功能。注意区分文本模式和二进制模式,在处理非文本数据时加上 std::ios::binary。操作完成后记得关闭文件,确保数据写入磁盘。









