在执行过程中读写一个大的多维数组到二进制文件并重新加载回数组?

3
我有一个大型的多维数组: float largetable [32] [256] [128] [3]
有没有一种方法可以在C ++中将这个数组写入二进制文件并轻松地读取回来?
在VS2013中,当我将数据数组放在头文件中(这不是很好的形式),但是会遇到以下错误: fatal error C1060: compiler is out of heap space 所以我认为读取它是解决问题的方法。
我是一名Python程序员,因此对C ++相对较新。

是的,有的,我想这很容易。你无法解决它的哪个实现部分?(请先尝试自己解决问题,然后再带着代码和具体问题来这里寻求帮助)。 - Adriano Repetti
1
试着搜索名为......嗯,我不知道......也许是readwrite的函数吗? - n. m.
1个回答

1
使用fwrite()函数一次性写入整个数组:
FILE* pFile = fopen("filename", "wb");
fwrite(largetable, sizeof(largetable), 1, pFile);
fclose(pFile);

将其翻译成中文:

读取它回来:


FILE* pFile = fopen("filename", "rb");
fread(largetable, sizeof(largetable), 1, pFile);
fclose(pFile);

这一切都很棒,有没有办法给BIN文件添加压缩使其仍然很大? - John Du
你能压缩它吗? - John Du
您可以使用压缩库(例如zlib),并在循环中传递大缓冲区的部分。由于您现在将2D数组视为简单的1D缓冲区,因此与压缩任何其他数据没有区别。 - egur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接