在C++中,我们可以使用标准库中的 <fstream>
(文件流)来进行文件的读写操作。以下是一些基本的文件读写操作的示例。
读取文件
cpp复制代码
#include <fstream> | |
#include <iostream> | |
#include <string> | |
int main() { | |
std::ifstream file("example.txt"); // 打开文件以进行读取操作 | |
if (file.is_open()) { // 检查文件是否成功打开 | |
std::string line; | |
while (std::getline(file, line)) { // 逐行读取文件 | |
std::cout << line << '\n'; // 输出每一行 | |
} | |
file.close(); // 关闭文件 | |
} else { | |
std::cout << "Unable to open file"; // 如果文件打开失败,输出错误信息 | |
} | |
return 0; | |
} |
写入文件
cpp复制代码
#include <fstream> | |
#include <iostream> | |
int main() { | |
std::ofstream file("example.txt"); // 打开文件以进行写入操作 | |
if (file.is_open()) { // 检查文件是否成功打开 | |
file << "Hello, World!"; // 写入字符串到文件 | |
file.close(); // 关闭文件 | |
} else { | |
std::cout << "Unable to open file"; // 如果文件打开失败,输出错误信息 | |
} | |
return 0; | |
} |
追加内容到文件
如果你希望在文件的末尾追加内容,而不是覆盖原有的内容,你可以使用 std::ofstream
的构造函数,并传入 std::ios::app
标志。
cpp复制代码
#include <fstream> | |
#include <iostream> | |
int main() { | |
std::ofstream file("example.txt", std::ios::app); // 打开文件以进行追加操作 | |
if (file.is_open()) { // 检查文件是否成功打开 | |
file << "This is appended content."; // 追加字符串到文件 | |
file.close(); // 关闭文件 | |
} else { | |
std::cout << "Unable to open file"; // 如果文件打开失败,输出错误信息 | |
} | |
return 0; | |
} |
注意:在使用完文件后,关闭文件是一个好习惯,因为这可以确保所有的数据都被正确地写入磁盘,并释放系统资源。然而,如果你使用的是C++17或更高版本,你可以使用RAII(Resource Acquisition Is Initialization)原则,通过智能指针(如 std::unique_ptr
或 std::shared_ptr
)或作用域退出时自动关闭的封装类(如 std::ofstream
的析构函数)来自动管理文件的关闭。在上面的示例中,当 file
变量离开其作用域时,其析构函数会自动关闭文件。