【发布时间】:2015-06-14 00:12:45
【问题描述】:
有人知道如何将 IEEE 754 单精度(32 位)浮点数写入 ofstream 吗?
我正在使用:
float VERSION = 0.1;
ofstream header;
header.open("a4.pbf",ios::binary);
header.write(reinterpret_cast<const char*>(&VERSION), sizeof(float));
header.close();
- 结果值:“0xCD,0xCC,0xCC,0x3D”
- 预期值:“0x3D,0xCC,0xCC,0xCD”
谢谢。
【问题讨论】:
-
你为什么期待
"0x3D,0xCC,0xCC,0xCD"?有很多原因,为什么你不能依赖这个。 endianess 的一切你都知道,不是吗? -
我正在将 actionscript3 中的主要代码更改为 C++,并且不想放弃兼容性:help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/…
-
如何在c++中设置ofstream的字节序?
-
关于如何设置流的字节序的问题根本没有任何意义。此外,每当您将数据写入文件时,您最好将操作抽象化,以便了解数据的格式(是的,即使转换恰好是某些系统上的标识,这也是有道理的;显然在您的情况不是因为您需要对数据进行编码以使用适当的字节序)。
-
@πάνταῥεῖ 这个问题不需要改进,它说得很好。你是那个要求为这个问题辩护的人。
标签: c++ floating-point 32-bit ieee-754 ofstream