c++使用文本模式将MyString类的对象写入到文件中,并从文件中读取数据到另外的MyString类的对象中。同时写出MyString类从文件读写字符串的代码
时间: 2024-11-07 11:13:54 浏览: 96
在C++中,为了将`MyString`类的对象写入文本文件并从文件中读取到另一个`MyString`对象,你需要实现`ofstream`和`ifstream`流操作。首先,假设`MyString`有一个私有成员用于存储字符串,如`std::string str`。下面是基本的代码示例:
```cpp
#include <fstream>
#include <sstream>
class MyString {
private:
std::string str;
public:
// 构造函数和析构函数省略
// 添加一个将字符串写入文件的函数
void writeToFile(const std::string& filename) {
std::ofstream file(filename);
if (file.is_open()) {
file << str;
file.close();
} else {
throw std::runtime_error("Failed to open file for writing");
}
}
// 从文件读取字符串
void readFromFile(const std::string& filename) {
std::ifstream inputFile(filename);
if (inputFile.is_open()) {
std::stringstream ss(inputFile.rdbuf());
inputFile.close();
getline(ss, str); // 读取一行直到遇到换行符
if (!ss.fail()) {
// 如果没有失败,就成功读取了
} else {
throw std::runtime_error("Failed to read from file");
}
} else {
throw std::runtime_error("Failed to open file for reading");
}
}
};
// 使用示例
int main() {
MyString myString = "Hello, World!";
try {
myString.writeToFile("output.txt");
MyString anotherString;
anotherString.readFromFile("output.txt");
std::cout << anotherString.str << std::endl; // 输出应与myString一致
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
```
注意:这个例子假设文件内容只包含一行字符串。如果有多行,你可能需要循环读取每一行。
阅读全文
相关推荐



















