我发现当我使用SerializeToOstream()时,只有最后一条消息写入文件,之前的消息都被以后的调用覆盖。像这样:
我的hello.proto:
string[]
然后我将它编译并在一个cpp文件中使用:
message hello
{
required int32 f1=1;
required int32 f2=2;
optional int32 f3=3;
}
我只发现" p3"写进了这个" hello.data",p1和p2被某种方式覆盖了?
为什么protobuf只写最后一条消息?我们通常使用protobuf来传递多条消息,对吧?那么如何将多条消息写入一个文件?如何纠正我的程序?
答案 0 :(得分:3)