0

現在、次のようなものを使用してテキストファイルから2列のデータを読み取るC++プログラムがあります

while(!file.eof())
{
    double a, b;
    file >> a >> b; // extracts 2 floating point values separated by whitespace

    // do something with them
}

ここで、このコードを調整して、.bin ファイルから 2 列のバイナリ データを読み取るようにします。プログラムの残りの部分では、値を double として扱いたいと思っています。これを達成する最も簡単な方法は何ですか?

編集:

このようなバイナリデータをpythonプログラムで書いています。私はそれが2つの列にあると考えています。

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

バイナリ データの 2 つの「列」を読みたいと言うのは意味がありません。

列は、人間の目で読みやすくするためにデータを視覚化するためのアーティファクトです。バイナリ データを読み書きするときは、データが人間にどのように見えるかを考えないでください。ハードディスクに 1 と 0 の大きなセグメントが連続して格納されていると想像してみてください。行を忘れて...行を忘れて...など。

fstream の「読み取り」および「書き込み」コマンドを使用する必要があります。fstream のドキュメントについては、次のリンクを参照してください: http://www.cplusplus.com/reference/fstream/fstream/

于 2013-03-22T02:21:49.467 に答える