读入二进制数据列

Reading in columns of binary data

本文关键字:数据 二进制      更新时间:2023-10-16

现在我有一个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。忘掉争吵吧……忘了台词吧……等。

你需要使用fstream 'read'和'write'命令。查看fstream的文档链接:http://www.cplusplus.com/reference/fstream/fstream/