
在C++中进行文件读写操作,主要使用标准库中的fstream头文件提供的类。这些类基于iostream体系,支持文本和二进制文件的处理。下面详细介绍如何使用C++进行文件的读取与写入。
1. 包含必要的头文件
要使用文件流,必须包含
#include
#include
2. 文件操作的核心类
C++提供三个主要的文件操作类:
- ofstream:用于文件写入(output file stream)
- ifstream:用于文件读取(input file stream)
- fstream:可同时读写文件
3. 写入文件(ofstream)
使用ofstream将数据写入文件:
立即学习“C++免费学习笔记(深入)”;
std::ofstream outFile("example.txt");if (outFile.is_open()) {
outFile outFile outFile.close();
} else {
std::cerr }
注意:如果文件不存在会自动创建;如果已存在,默认会清空内容。如需追加,使用std::ios::app模式:
std::ofstream outFile("example.txt", std::ios::app);4. 读取文件(ifstream)
使用ifstream读取文件内容:
std::string line;
if (inFile.is_open()) {
while (std::getline(inFile, line)) {
std::cout }
inFile.close();
} else {
std::cerr }
也可以用>>操作符读取单个单词(以空白分隔):
std::string word;while (inFile >> word) {
std::cout }
5. 使用fstream进行读写
fstream可以指定模式同时支持读写:
std::fstream file("data.txt", std::ios::in | std::ios::out | std::ios::trunc);if (file.is_open()) {
// 写入
file file // 回到文件开头读取
file.seekg(0);
std::string line;
while (std::getline(file, line)) {
std::cout }
file.close();
}
6. 常用文件打开模式
- std::ios::in - 读取
- std::ios::out - 写入
- std::ios::app - 追加
- std::ios::ate - 打开后定位到文件末尾
- std::ios::trunc - 若文件存在则清空内容
- std::ios::binary - 二进制模式
7. 二进制文件读写
使用read()和write()方法处理二进制数据:
// 写入二进制std::ofstream binOut("data.bin", std::ios::binary);
int data = 12345;
binOut.write(reinterpret_cast
binOut.close();
// 读取二进制
std::ifstream binIn("data.bin", std::ios::binary);
int value;
binIn.read(reinterpret_cast
std::cout
binIn.close();
8. 检查操作状态
文件流提供多个状态标志:
每次操作后建议检查状态,确保文件操作成功。
基本上就这些。掌握这些方法后,你就可以在C++中灵活地处理各种文件读写任务了。关键是记得判断文件是否成功打开,并在使用后调用close()释放资源。对于文本处理,getline最常用;对结构化或性能要求高的场景,考虑二进制方式。










