如果我在 32 位应用程序中将 int 写入 fstream 并在 64 位应用程序中读取该 int,我应该期望值不同吗?如果是这样(我认为是),实现与体系结构无关的流操作的最佳方法是什么?

最佳答案

如果您使用 operator<<operator>> 进行读写,则它将是平台无关的,假设整数足够小以适合这两种类型,因为 if 将被写入为文本。如果您使用 ostream::readosteam::write ,它不会与平台无关,因为您将编写二进制数据。

如果您不需要原始性能,使用文本格式是实现平台独立性的最简单方法。如果您需要更好的性能,您应该查看序列化库。 Boost 有一个很好的跨平台的。

关于C++:32 位与 64 位流操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15300148/

10-12 22:28