c++怎样在一个函数里实现读写文本或二进制文件
时间: 2024-10-01 13:03:51 浏览: 9
在 C++ 中,你可以使用标准库中的 `<fstream>` 模块来实现读写文本或二进制文件。这里提供了一个简单的例子来说明如何操作:
1. **读取文本文件** (逐行读取):
```cpp
#include <fstream>
#include <string>
std::string readTextFile(const std::string& filename) {
std::ifstream file(filename);
if (!file.is_open()) {
std::cerr << "Failed to open the file." << std::endl;
return "";
}
std::string line;
while (getline(file, line)) {
// 对每一行进行处理
}
file.close();
return ""; // 这里仅作示例,实际应用中可能需要返回读取的内容
}
// 使用方法:
std::string content = readTextFile("example.txt");
```
2. **写入文本文件**:
```cpp
void writeTextFile(const std::string& filename, const std::string& content) {
std::ofstream outputFile(filename);
if (!outputFile.is_open()) {
std::cerr << "Failed to create the file." << std::endl;
return;
}
outputFile << content; // 直接写入字符串
outputFile.close();
}
// 使用方法:
writeTextFile("new_content.txt", "This is some sample text.");
```
3. **读取二进制文件** (例如整数数组):
```cpp
#include <fstream>
#include <vector>
std::vector<int> readBinaryFile(const std::string& filename) {
std::ifstream binaryFile(filename, std::ios::binary);
if (!binaryFile.is_open()) {
std::cerr << "Failed to open the file." << std::endl;
return {};
}
int size;
binaryFile >> size;
std::vector<int> data(size);
binaryFile.read(reinterpret_cast<char*>(data.data()), sizeof(int) * size);
binaryFile.close();
return data;
}
// 使用方法:
std::vector<int> numbers = readBinaryFile("numbers.bin");
```
4. **写入二进制文件** (例如整数数组):
```cpp
void writeBinaryFile(const std::string& filename, const std::vector<int>& data) {
std::ofstream binaryOutputFile(filename, std::ios::binary);
if (!binaryOutputFile.is_open()) {
std::cerr << "Failed to create the file." << std::endl;
return;
}
binaryOutputFile << data.size(); // 写入数据大小
for (const auto& num : data) {
binaryOutputFile.write(reinterpret_cast<const char*>(&num), sizeof(num));
}
binaryOutputFile.close();
}
// 使用方法:
writeBinaryFile("binary_data.bin", {1, 2, 3, 4, 5});
```
记得在完成操作后关闭文件流以释放资源。