c++ 读取protobuf
时间: 2023-09-04 15:16:02 浏览: 49
要读取 protobuf,你需要先定义 protobuf 的消息格式,然后使用 protobuf 库将二进制数据解析为消息对象。
以下是一个示例代码:
```c++
#include <fstream>
#include <iostream>
#include "person.pb.h"
using namespace std;
int main() {
// 读取二进制文件
fstream input("person.bin", ios::in | ios::binary);
if (!input) {
cerr << "Failed to open file." << endl;
return -1;
}
// 解析消息对象
tutorial::Person person;
if (!person.ParseFromIstream(&input)) {
cerr << "Failed to parse person." << endl;
return -1;
}
// 打印消息对象
cout << "Name: " << person.name() << endl;
cout << "Age: " << person.age() << endl;
cout << "Email: " << person.email() << endl;
return 0;
}
```
在这个示例中,我们读取一个二进制文件 `person.bin`,然后解析为 `tutorial::Person` 消息对象。解析完成后,我们打印消息对象的属性。
注意:上面的示例假设你已经定义了 `tutorial::Person` 的消息格式,并且使用 protobuf 工具生成了对应的 `.pb.h` 和 `.pb.cc` 文件。如果你还没有定义消息格式,可以参考 protobuf 的官方文档。