自己使用C++序例化好的数据,解析的时候一直出现“ParseFromIstream return false”问题,关键是有的文件可以解析成功,有的不可以解析成功。
查找了半天的时间发现是:序列化的过程中有一些字段类型赋值错误导致,我犯的错误把int类型赋值给bool类型,导致查找问题根源都定位的不对。
在使用protobuf过程中,无故出现解析相关问题,建议从两个方面入手:
第一:看看是不是把不可以兼容的类型赋值给了另外的类型,例如把int直接赋值给bool类型。
第二:看看自己定义的结构体变量是否给了初始值,建议给所有的变量都赋上初始值。
更多protobuf语法问题,可以参考文章:protobuf语法指南。