gpt4 book ai didi

c++ - 如何将二进制数据硬编码为字符串

转载 作者:搜寻专家 更新时间:2023-10-31 00:56:52 26 4
gpt4 key购买 nike

我想在我的应用程序中测试序列化数据转换,当前对象存储在文件中并读取二进制文件并重新加载对象。

在我的单元测试用例中,我想测试这个操作。由于文件操作的成本很高,我想在代码本身中对二进制文件内容进行硬编码。

我该怎么做?

目前我正在尝试这样,

std::string FileContent = "\00\00\00\00\00.........";

而且它不工作。

最佳答案

字符串可以包含 '\0' 是对的,但是在这里您仍然从 const char* 初始化它,根据定义,它停止在第一个 '\0' 处。我建议您使用 uint8_t[] 甚至 uint32_t[](即不传递给 std::string),甚至如果第二个可能有多达 3 个字节的开销(但在源代码中它更紧凑)。那就是例如X位图通常是如何存储的。

另一种可能性是 base64 编码,它可打印但需要(相对较快的)解码。

如果您真的想要将const char[] 转换为std::string,首先将指针转换为 const char*,然后使用 std::string 的双迭代器构造函数。虽然 std::string 确实可以保存 '\0',但将二进制存储在字符串中有点反模式,因此我没有给出确切的代码,只是提示。

关于c++ - 如何将二进制数据硬编码为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38529935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com