|
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;} |
|