在 Linux 中,C++ 可以使用标准库 <fstream>
提供的文件流对象进行文件操作。以下是一些基本的文件操作示例:
std::ifstream
(输入文件流)或 std::ofstream
(输出文件流)打开文件。#include <iostream>
#include <fstream>
int main() {
std::ifstream inputFile("input.txt");
std::ofstream outputFile("output.txt");
if (!inputFile.is_open()) {
std::cerr << "无法打开输入文件" << std::endl;
return 1;
}
if (!outputFile.is_open()) {
std::cerr << "无法打开输出文件" << std::endl;
return 1;
}
// 文件操作...
inputFile.close();
outputFile.close();
return 0;
}
>>
操作符从文件中读取数据。std::string line;
while (std::getline(inputFile, line)) {
std::cout << line << std::endl;
}
<<
操作符将数据写入文件。outputFile << "Hello, World!" << std::endl;
close()
方法关闭文件。inputFile.close();
outputFile.close();
good()
, eof()
, fail()
, 和 bad()
方法检查文件流的状态。if (inputFile.good()) {
// 文件操作成功
} else if (inputFile.eof()) {
// 到达文件末尾
} else if (inputFile.fail()) {
// 文件操作失败
} else if (inputFile.bad()) {
// 文件发生严重错误
}
std::fstream
类进行随机访问文件操作。std::fstream randomAccessFile("random_access.txt", std::ios::in | std::ios::out);
if (!randomAccessFile.is_open()) {
std::cerr << "无法打开随机访问文件" << std::endl;
return 1;
}
// 定位到文件的第 10 个字节
randomAccessFile.seekg(10, std::ios::beg);
randomAccessFile.seekp(10, std::ios::beg);
// 写入数据
randomAccessFile << "Hello, World!";
// 读取数据
std::string line;
randomAccessFile.seekg(0, std::ios::beg);
std::getline(randomAccessFile, line);
std::cout << line << std::endl;
randomAccessFile.close();
这些示例展示了如何在 Linux 中使用 C++ 进行基本的文件操作。你可以根据需要修改和扩展这些示例以满足你的需求。