pb 生成 txt文件并写入数据 csdn
时间: 2023-09-15 10:02:55 浏览: 292
生成txt文件
pb生成txt文件并写入数据,可以通过使用Google的开源库protobuf来实现。
首先,我们需要定义一个protobuf的消息描述文件,可以使用.proto后缀名。在该文件中定义需要写入txt文件的数据结构,如下所示:
```protobuf
syntax = "proto3";
message UserInfo {
string name = 1;
int32 age = 2;
string occupation = 3;
}
```
然后,使用protobuf的工具命令编译生成相应的代码,例如使用以下命令生成C++代码:
```
protoc -I=<proto文件所在路径> --cpp_out=<生成代码存放路径> <proto文件名>.proto
```
通过该命令会在指定的生成代码存放路径下生成对应的.cpp和.h文件,用于操作protobuf消息。
接下来,在C++代码中使用生成的代码读取和写入txt文件,代码示例如下:
```cpp
#include <iostream>
#include <fstream>
#include "userinfo.pb.h"
int main() {
// 创建UserInfo消息对象并填充数据
UserInfo user;
user.set_name("张三");
user.set_age(25);
user.set_occupation("工程师");
// 将UserInfo消息对象写入txt文件
std::ofstream outputFile("userInfo.txt", std::ios::out | std::ios::binary);
if (!user.SerializeToOstream(&outputFile)) {
std::cerr << "Failed to write user info." << std::endl;
return -1;
}
outputFile.close();
std::cout << "UserInfo has been written to txt file." << std::endl;
return 0;
}
```
以上代码创建了一个UserInfo消息对象,并将数据填充到对象中。然后,使用SerializeToOstream函数将该对象写入txt文件中。最后,关闭文件流并输出提示信息。
需要注意的是,编译该C++代码时需要将生成的.pb.cc和.pb.h文件一起编译,并链接protobuf库。
通过以上步骤,我们就成功地生成了一个txt文件,并将数据以protobuf的格式写入其中。
阅读全文