1.安装编译protobuf库。window下建议使用vcpkg
2.编写pb文件,生成对应的.pb.cc和.pb.h。
3.使用之。
void UseProtobuf()
{
///protobuf的简单使用
//------------------将pb二进制信息保存到字符串
using namespace test;
Person p;
p.set_name("test");
p.set_id(10);
p.set_email("2650514653");
std::string str;
p.SerializeToString(&str);
std::cout<<"str="<<str<<std::endl;
//------------------将pb文本信息写入文件
std::fstream fw;
fw.open("../../../..//Person.txt", std::ios::out | std::ios::binary);
//为io创建一个缓冲
google::protobuf::io::OstreamOutputStream *output = new google::protobuf::io::OstreamOutputStream(&fw);
//将p写入缓冲
google::protobuf::TextFormat::Print(p, output);
delete output;
fw.close();
//---------------------将pb文本信息保存到字符串
std::string str1;
google::protobuf::TextFormat::PrintToString(p, &str1);
std::cout<<"str1: ["<<str1<<"]"<<std::endl;
//---------------------反序列化
Person p1;
p1.ParseFromString(str);
std::cout<<"name:"<<p1.name()<<",email:"<<p1.email()<<",id:"<<p1.id()<<std::endl;
}