在C++ Linux編程中,處理文件I/O通常使用C++標準庫中的<fstream>
頭文件提供的類和函數。以下是一些基本的文件I/O操作:
包含頭文件:
#include <fstream>
創建文件流對象:
std::ifstream inputFile; // 用于讀取文件
std::ofstream outputFile; // 用于寫入文件
std::fstream file; // 用于讀寫文件
打開文件:
inputFile.open("example.txt"); // 打開文件用于讀取
outputFile.open("output.txt"); // 打開文件用于寫入
file.open("data.txt", std::ios::in | std::ios::out); // 打開文件用于讀寫
檢查文件是否成功打開:
if (!inputFile.is_open()) {
std::cerr << "Unable to open file for reading!" << std::endl;
}
if (!outputFile.is_open()) {
std::cerr << "Unable to open file for writing!" << std::endl;
}
讀取文件:
std::string line;
while (std::getline(inputFile, line)) {
std::cout << line << std::endl;
}
寫入文件:
outputFile << "Hello, World!" << std::endl;
關閉文件:
inputFile.close();
outputFile.close();
file.close();
使用C風格文件I/O:
除了C++風格的文件I/O,你還可以使用C標準庫中的<cstdio>
頭文件提供的函數,例如:
FILE* filePtr = fopen("example.txt", "r"); // 打開文件用于讀取
if (filePtr == nullptr) {
std::cerr << "Unable to open file for reading!" << std::endl;
}
char buffer[256];
while (fgets(buffer, sizeof(buffer), filePtr)) {
std::cout << buffer;
}
fclose(filePtr);
錯誤處理: 在文件I/O操作中,檢查錯誤狀態是很重要的??梢允褂靡韵路椒▉頇z查錯誤:
if (inputFile.fail()) {
std::cerr << "An error occurred while reading the file!" << std::endl;
}
文件指針操作(C風格):
使用C風格文件I/O時,你可以使用fseek
, ftell
, rewind
等函數來操作文件指針。
請注意,C++風格的文件I/O提供了類型安全和更高級的功能,如異常處理和RAII(資源獲取即初始化)原則,而C風格文件I/O則更接近底層操作。在現代C++編程中,推薦使用C++風格的文件I/O。