在C++中,你可以使用标准库中的<fstream>头文件来实现文件操作。这个头文件提供了ifstream、ofstream和fstream三个类,分别用于读取、写入和读写文件。
下面是一些基本的文件操作示例:
#include <fstream>
#include <iostream>
int main() {
// 创建一个输出文件流对象,并打开一个文件用于写入
std::ofstream outFile("example.txt");
// 检查文件是否成功打开
if (!outFile.is_open()) {
std::cerr << "Unable to open file for writing!" << std::endl;
return 1;
}
// 写入数据到文件
outFile << "Hello, World!" << std::endl;
// 关闭文件
outFile.close();
return 0;
}
#include <fstream>
#include <iostream>
#include <string>
int main() {
// 创建一个输入文件流对象,并打开一个文件用于读取
std::ifstream inFile("example.txt");
// 检查文件是否成功打开
if (!inFile.is_open()) {
std::cerr << "Unable to open file for reading!" << std::endl;
return 1;
}
// 读取文件内容到字符串
std::string line;
while (std::getline(inFile, line)) {
std::cout << line << std::endl;
}
// 关闭文件
inFile.close();
return 0;
}
#include <fstream>
#include <iostream>
int main() {
// 创建一个输出文件流对象,并以追加模式打开一个文件
std::ofstream outFile("example.txt", std::ios::app);
// 检查文件是否成功打开
if (!outFile.is_open()) {
std::cerr << "Unable to open file for appending!" << std::endl;
return 1;
}
// 追加数据到文件
outFile << "Appended text!" << std::endl;
// 关闭文件
outFile.close();
return 0;
}
对于二进制文件的读写,你可以使用std::ios::binary标志:
#include <fstream>
#include <iostream>
int main() {
// 写入二进制文件
{
std::ofstream outFile("example.bin", std::ios::binary);
if (!outFile.is_open()) {
std::cerr << "Unable to open file for writing binary data!" << std::endl;
return 1;
}
int data = 42;
outFile.write(reinterpret_cast<const char*>(&data), sizeof(data));
outFile.close();
}
// 读取二进制文件
{
std::ifstream inFile("example.bin", std::ios::binary);
if (!inFile.is_open()) {
std::cerr << "Unable to open file for reading binary data!" << std::endl;
return 1;
}
int data;
inFile.read(reinterpret_cast<char*>(&data), sizeof(data));
std::cout << "Read from file: " << data << std::endl;
inFile.close();
}
return 0;
}
在使用文件流时,记得检查文件是否成功打开,并在操作完成后关闭文件。这样可以避免资源泄露和其他潜在的问题。此外,对于大型文件操作,考虑使用缓冲区来提高效率。