c++ protobuf 转string
时间: 2023-09-04 16:15:53 浏览: 628
在 C++ 中,将 protobuf 对象转换为字符串可以使用 protobuf 库中的 `SerializeToString()` 函数。该函数的原型如下:
```c++
bool SerializeToString(string* output) const;
```
其中,`output` 是一个指向 `string` 对象的指针,该函数将序列化后的数据写入 `output` 所指向的 `string` 对象中。
以下是一个示例代码,演示了如何将一个 protobuf 对象转换为字符串:
```c++
#include <iostream>
#include <string>
#include "my_proto.pb.h"
using namespace std;
int main()
{
// 创建一个 MyProto 对象
MyProto my_proto;
my_proto.set_id(123);
my_proto.set_name("test");
// 将 MyProto 对象序列化为字符串
string output;
if (my_proto.SerializeToString(&output))
{
// 输出序列化后的字符串
cout << "Serialized string: " << output << endl;
}
else
{
cout << "Failed to serialize MyProto object." << endl;
}
return 0;
}
```
在上面的示例中,我们首先创建了一个 `MyProto` 对象,并设置了它的 `id` 和 `name` 属性。然后,我们使用 `my_proto.SerializeToString(&output)` 函数将该对象序列化为字符串,并将结果写入 `output` 对象中。最后,我们输出了序列化后的字符串。
阅读全文