在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
?變量離開其作用域時,其析構函數會自動關閉文件。