c++ - ParseFromArray 函数在 C++ 中如何工作以及如何使用它来将二进制文件读入 protobuf?
问题描述
我有点不确定 C++ 中 ParseFromArray(...) 函数的工作原理。它究竟做了什么以及如何使用它?例如,如果我试图将二进制文件读入 protobuf,我该如何使用 ParseFromArray(...)。任何帮助表示赞赏。
解决方案
通常,如果要从文件中解析 protobuf,请确保以二进制模式打开文件,然后调用ParseFromIstream
.
ParseFromArray
和ParseFromString
(仅在参数的数据类型上有所不同)用于解析已经在内存中的 protobuf。如果 protobuf 只是文件的一部分,并且您知道如何提取字节,您可能想要这样做。如果您将字节提取(或读取)为std::string
,则可以使用ParseFromString
,但大多数情况下您将std::istream::read
用于读取二进制文件,并且该函数将数据读入缓冲区(这是 的数组char
)。然后,您将ParseFromArray
使用缓冲区的起始地址(转换为void*
)及其长度进行调用。
推荐阅读
- javascript - 地图图层在初始加载后不会再次渲染
- css - 为什么 div 标签没有通过其 className 更改 css?
- asio - 有没有我可以学习的教程来了解 Steinberg ASIO SDK?
- arrays - 用文本文件中的字符串填充数组,数组的每个元素都是相同的
- python - dtype的图像数据
我的图像有错误,但不知道如何解决。任何人都可以帮我吗?
错误:
<class 'pandas.core.frame.DataFrame'> RangeIndex: 3929 个条目,0 到 3928 个数据列(共 4 列):
列非空计数 Dtype
- python - 从 cs.money 获取 csgo 皮肤截图
- javascript - Angular 11 尝试区分可观察的错误
- python - 多处理池似乎不是并行处理,时间随输入数量线性变化
- python - 数据透视表同时维护行的索引
- javascript - 引导模式在页面加载时自动打开,但是如果提交表单如何禁用