c++使用二进制模式将MyString类的对象写入到文件中,并从文件中读取数据到另外的MyString类的对象中。同时写出MyString类从文件读写字符串的代码
时间: 2024-11-06 11:24:27 浏览: 28
在 C++ 中,你可以通过`std::ofstream`和`std::ifstream`类来实现二进制模式下的文件操作。首先,你需要在 `MyString` 类中添加一些成员函数,用于读写字符串到文件。以下是一个简单的例子:
```cpp
#include <fstream>
#include <vector>
class MyString {
public:
// 构造函数和析构函数
MyString(const std::string& str) : data_(str) {}
~MyString() {}
// 将字符串写入二进制文件
void writeToBinaryFile(const std::string& filename) {
std::ofstream file(filename, std::ios::binary);
if (file.is_open()) {
file.write(reinterpret_cast<const char*>(data_.data()), data_.size());
file.close();
} else {
std::cerr << "Failed to open file for writing." << std::endl;
}
}
// 从二进制文件读取字符串
static MyString readFromBinaryFile(const std::string& filename) {
MyString result;
std::ifstream inputFile(filename, std::ios::binary);
if (inputFile.is_open()) {
std::vector<char> buffer(data_.size());
inputFile.read(buffer.data(), buffer.size());
result.data_ = buffer.begin(); // 字符串数据已包含在缓冲区中
inputFile.close();
} else {
std::cerr << "Failed to open file for reading." << std::endl;
}
return result;
}
private:
std::string data_; // 存储字符串的变量
};
阅读全文