现在我有一个C ++程序,它使用类似
的内容从文本文件中读取两列数据while(!file.eof())
{
double a, b;
file >> a >> b; // extracts 2 floating point values separated by whitespace
// do something with them
}
现在我想调整此代码以从.bin文件中读取两列二进制数据。我仍然希望在我的程序的其余部分中将值视为双精度数。最简单的方法是什么?
修改
我在python程序中编写这样的二进制数据。我认为它分为两列。
import struct
c = struct.Struct('=ff')
with open('numbers.bin', 'w+') as outf:
for r, k in nonzero:
outf.write(c.pack(r, k))
答案 0 :(得分:1)
说你想要读取二进制数据的两个“列”是没有意义的。
列是为了人眼可读性而可视化数据的工件。当您在读/写二进制数据时,不要考虑数据对人类的影响。想象一下连续存储的硬盘上的大段1和0。忘记行...忘记行......等等。
您需要使用fstream'read'和'write'命令。有关fstream:http://www.cplusplus.com/reference/fstream/fstream/
的文档,请参阅此链接