在C++中将结构转换和存储为二进制

Convert and Store struct to binary in C++

本文关键字:存储 二进制 转换 结构 C++      更新时间:2023-10-16

我想将一个由各种数据类型(long,char[x],char*(组成的结构转换为二进制并将其存储在变量中(我不知道正确或最佳的数据类型(。

转换
对于字符串:我已经将每个字符转换为其 ascii 代码,然后将 ascii 代码从十进制转换为二进制。 对于数字:我已经将数字从十进制转换为二进制。

存储我将上述转换的输出存储
为 char[],由 '0' 和 '1' 组成。

我的问题是,如何将结构转换为二进制以及以哪种数据类型存储它。理想情况下,我想以二进制格式存储它,以便对其执行各种操作。(我使用的 char[] 数据类型似乎有点错误,因为它实际上是字符串,而不是二进制(

编辑:我宁愿避免使用标准C++中未包含的库。

我将上述转换的输出存储为 char[],由"0"和"1"组成。

只需将二进制数据存储为字节(例如,不是['1','1','1','1','0','1','1','1']而是0xf7(。每char存储 8 位,存储的数据数量与数据一样多char。如果您使用的是 c++17,请使用std::byte而不是char

最好使用布尔向量作为存储,例如,按照您告诉的那样转换每个数据类型,然后将它们的输出放在向量中,然后按照它们放置在容器中的顺序检索它们。虽然,最好使用 std::byte 的向量。