c++ stringstream 自定义类型序列化
时间: 2023-09-27 19:08:46 浏览: 247
使用C++的stringstream可以将自定义类型序列化为字符串。下面是一个简单的示例:
```c++
#include <iostream>
#include <sstream>
struct Person {
std::string name;
int age;
};
std::ostream& operator<<(std::ostream& os, const Person& p) {
os << p.name << " " << p.age;
return os;
}
std::istream& operator>>(std::istream& is, Person& p) {
is >> p.name >> p.age;
return is;
}
int main() {
std::stringstream ss;
Person p {"Alice", 25};
ss << p;
std::cout << "Serialized: " << ss.str() << std::endl;
Person deserialized;
ss >> deserialized;
std::cout << "Deserialized: " << deserialized.name << " " << deserialized.age << std::endl;
return 0;
}
```
在这个示例中,我们定义了一个Person结构体,并为其定义了输出流和输入流运算符。然后,我们使用stringstream将一个Person对象序列化为字符串,并将序列化后的字符串输出到控制台。接着,我们从stringstream中反序列化出一个Person对象,并将反序列化后的对象输出到控制台。
这里需要注意的是,输入流和输出流运算符必须是全局函数,而不能是成员函数。因为我们需要对Person类型进行序列化和反序列化,而这些操作并不是Person类型的成员函数。
阅读全文
相关推荐

















