答案是使用fstream库中的ofstream、ifstream和fstream类操作文本文件。包含头文件后,用ofstream创建或写入文件,默认覆盖内容;若需追加,应使用ios::app模式打开文件。

在C++中,读写文本文件最常用的方法是使用标准库中的 fstream。它提供了三个主要的类:ifstream(输入文件流)、ofstream(输出文件流)和fstream(文件流,支持读写)。这些类都定义在
包含头文件并打开文件
要使用文件操作功能,必须先包含
例如,打开一个文本文件进行写入:
#include#include using namespace std; int main() { ofstream outFile("example.txt"); if (!outFile) { cout << "无法打开文件用于写入!" << endl; return 1; } outFile << "Hello, C++ File I/O!" << endl; outFile.close(); return 0; }
上面代码创建了一个名为 example.txt 的文件,并写入一行文本。如果文件已存在,内容将被覆盖。若想追加内容,需以追加模式打开。
立即学习“C++免费学习笔记(深入)”;
以不同模式打开文件
ofstream 默认以覆盖模式(trunc)打开文件。如果希望在文件末尾追加内容,可以使用 ios::app 模式:
ofstream outFile("example.txt", ios::app);
outFile << "这行将被追加到文件末尾。" << endl;
outFile.close();
常见打开模式包括:
- ios::out - 输出(写入)模式
- ios::in - 输入(读取)模式
- ios::app - 追加模式,所有写入操作都在文件末尾
- ios::ate - 打开后立即定位到文件末尾
- ios::trunc - 若文件存在,则清空原内容(默认写入行为)
读取文本文件内容
使用 ifstream 类可以读取文件内容。下面是从文件逐行读取的示例:
ifstream inFile("example.txt");
if (!inFile) {
cout << "无法打开文件用于读取!" << endl;
return 1;
}
string line;
while (getline(inFile, line)) {
cout << line << endl;
}
inFile.close();
getline 函数能正确处理包含空格的行。也可以用 >> 操作符读取单个单词,但会跳过空白字符。
同时读写文件(fstream)
当需要对同一个文件进行读写操作时,可使用 fstream 类,并指定模式为 ios::in | ios::out:
fstream file("data.txt", ios::in | ios::out);
// 先读取现有内容
string content;
while (getline(file, content)) {
cout << content << endl;
}
// 移动写指针到末尾再添加新内容
file << "新增的一行" << endl;
file.close();
注意:若文件不存在,这种打开方式不会自动创建,需先确保文件存在或额外处理。
基本上就这些。掌握 fstream 的基本用法后,就能轻松实现文本文件的读写操作。关键是记得检查文件是否成功打开,并在使用后调用 close() 关闭文件流。不复杂但容易忽略。










