gpt4 book ai didi

C++从二进制文件写入和读取 double

转载 作者:太空狗 更新时间:2023-10-29 20:06:40 24 4
gpt4 key购买 nike

我想为占用过多 RAM 的程序执行磁盘 I/O 操作。我使用 double 矩阵并认为以字节形式将它们写入磁盘是最快的方法(我需要保留 double )。

便携性如何做到?

我找到了这段代码 ( here ) 但作者说它不可移植...

#include <iostream>
#include <fstream>

int main()
{
using namespace std;

ofstream ofs( "atest.txt", ios::binary );

if ( ofs ) {
double pi = 3.14;

ofs.write( reinterpret_cast<char*>( &pi ), sizeof pi );
// Close the file to unlock it
ofs.close();

// Use a new object so we don't have to worry
// about error states in the old object
ifstream ifs( "atest.txt", ios::binary );
double read;

if ( ifs ) {
ifs.read( reinterpret_cast<char*>( &read ), sizeof read );
cout << read << '\n';
}
}

return 0;
}

最佳答案

How to do it with portability?

可移植性有不同的定义/级别。如果您所做的只是在一台机器上编写这些代码并在同一台机器上读取它们,那么您唯一关心的可移植性就是这段代码是否定义明确。 (是的。)
如果您想跨多个不同平台进行可移植的编写,您需要编写字符串 值,而不是二进制值。

但是请注意,您的代码缺乏正确的错误处理。它不检查文件是否可以打开并成功写入。

关于C++从二进制文件写入和读取 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6789856/

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