0

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

1 回答 1

1

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

列是出于人眼可读性目的而将数据可视化的产物。当您读取/写入二进制数据时,不要考虑数据对人类的看法。想象一下硬盘上连续存储的一大段 1 和 0。忘记行……忘记行……等等。

您需要使用 fstream 'read' 和 'write' 命令。有关 fstream 的文档,请参阅此链接:http ://www.cplusplus.com/reference/fstream/fstream/

于 2013-03-22T02:21:49.467 回答