gpt4 book ai didi

c++ - 用于在 C++ 中存储 double 的可移植二进制文件

转载 作者:行者123 更新时间:2023-11-30 04:09:41 24 4
gpt4 key购买 nike

让我们考虑 2 台 PC:需要 64 位(8 字节)存储 double 变量的 PC A 和需要 128 位(16 字节)存储 double 变量的 PC B。在 A 上使用我的应用程序创建了一个二进制文件。该文件被复制到 B,我的程序正在读取该文件。让我们考虑该文件包含 10 个 double 变量。为了说明该文件包含如下信息:

8888888888

//8代表8个字节

现在当 B 正在读取时,它将看到数据为

1616161616

//所以它只读取 5 个变量而不是 10 个,并且这些变量中将存储太不正确的值。

所以我的问题是,你如何管理读/写使得上述情况不会发生

  1. 数据只能存储在二进制文件中
  2. 数据由应用程序存储在 double[] 中,无法转换为字符串,因为现实生活中有数百万个 double 变量,翻译时间太多

我尝试读取适当长度的 char * 中的数据。但是当 char * 通过 reinterpret_cast 转换为 double 时,double 具有垃圾值。

最佳答案

使用现有的序列化库,例如 protobuf , 或更新的 cap'nproto (针对最常见的用例进行了优化)。

关于c++ - 用于在 C++ 中存储 double 的可移植二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21064059/

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