2011-09-15 21 views
1

私は、バイナリ形式の浮動小数点数の配列を書くことによって大きなバイナリファイルを作成しました。バイナリをLinuxのテキストに変換する

ここで、単純にバイナリファイルをテキストに変換する方法はありますか?

+0

どのバイナリ形式を使用しましたか? –

+0

私は、ofstream out(blah、ios :: out | ios :: binary)を使ってバイナリファイルを開いて、それをout.write((char *)blah、size)で書きました。これはどんなフォーマットですか? – Kiarash

+0

あなたの目標をより明確にしてください。値を読み込み、フォーマットされた出力を 'printf'で出力しますか?その場合、 'unpack()' PerlやPHPスクリプトはおそらくC++よりはるかに簡単でしょう。 –

答えて

7

-t f4オプションを指定してUNIX odコマンドを使用して、ファイルを4バイト浮動小数点値として読み込みます。 -A nオプションは、ファイルのオフセットを印刷しないようにするのにも役立ちます。ここでは、作成したサンプルファイルの出力を示します。

/tmp> od -A n -t f4 b.dump 
     -999.876  -998.876  -997.876  -996.876 
     -995.876  -994.876  -993.876  -992.876 
     -991.876  -990.876  -989.876  -988.876 
     -987.876  -986.876  -985.876  -984.876 
0

処理を元に戻す必要があります。

  1. ファイルをフロートの配列に読み戻します。
  2. 配列を印刷するには、printf()またはお気に入りのio関数を使用します。

他の方法であれば、醜くて痛いでしょう。これが始まるのは醜いとは言いません。

関連する問題