C++实现结构体序列化和反序列化代码
时间: 2024-10-09 10:12:56 浏览: 83
在C++中,结构体序列化通常是指将结构体的内容转换成二进制流或者文本格式,以便存储或在网络传输。而反序列化则是从这样的格式恢复原始的数据结构。这里是一个简单的例子,展示了如何使用`std::stringstream`进行结构体的序列化和反序列化:
```cpp
#include <sstream>
#include <iomanip>
// 定义一个结构体
struct MyStruct {
int id;
std::string name;
};
// 序列化函数
void serialize(MyStruct obj, std::string& output) {
std::stringstream ss;
ss << "id: " << obj.id << ", name: " << obj.name;
output = ss.str();
}
// 反序列化函数
void deserialize(const std::string& input, MyStruct& obj) {
std::istringstream iss(input);
iss >> "id: " >> obj.id >> ", name: " >> obj.name; // 使用一致的输入格式
}
int main() {
MyStruct myObj;
// ... 初始化myObj
std::string serializedData;
serialize(myObj, serializedData);
// 假设存储或网络接收到了serializedData
deserialize(serializedData, myObj);
return 0;
}
```
阅读全文