在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操作中,检查错误状态是很重要的。可以使用以下方法来检查错误:
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。