读取二进制数据列

时间:2013-03-22 00:52:16

标签: c++ file-io binary

现在我有一个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))

1 个答案:

答案 0 :(得分:1)

说你想要读取二进制数据的两个“列”是没有意义的。

列是为了人眼​​可读性而可视化数据的工件。当您在读/写二进制数据时,不要考虑数据对人类的影响。想象一下连续存储的硬盘上的大段1和0。忘记行...忘记行......等等。

您需要使用fstream'read'和'write'命令。有关fstream:http://www.cplusplus.com/reference/fstream/fstream/

的文档,请参阅此链接