首页 > 解决方案 > ParseFromArray 函数在 C++ 中如何工作以及如何使用它来将二进制文件读入 protobuf?

问题描述

我有点不确定 C++ 中 ParseFromArray(...) 函数的工作原理。它究竟做了什么以及如何使用它?例如,如果我试图将二进制文件读入 protobuf,我该如何使用 ParseFromArray(...)。任何帮助表示赞赏。

标签: c++functionparsingprotocol-buffersbinaryfiles

解决方案


通常,如果要从文件中解析 protobuf,请确保以二进制模式打开文件,然后调用ParseFromIstream.

ParseFromArrayParseFromString(仅在参数的数据类型上有所不同)用于解析已经在内存中的 protobuf。如果 protobuf 只是文件的一部分,并且您知道如何提取字节,您可能想要这样做。如果您将字节提取(或读取)为std::string,则可以使用ParseFromString,但大多数情况下您将std::istream::read用于读取二进制文件,并且该函数将数据读入缓冲区(这是 的数组char)。然后,您将ParseFromArray使用缓冲区的起始地址(转换为void*)及其长度进行调用。


推荐阅读