2011-09-15 117 views
1

我有一個很大的二進制文件,我用二進制格式編寫了一個浮點數組。將二進制文件轉換爲linux中的文本

現在我該如何簡單地將該二進制文件轉換爲文本?

+0

你使用什麼二進制格式? –

+0

我剛剛用ofstream打開了一個二進制文件(blah,ios :: out | ios :: binary),並在其中寫入out.write((char *)blah,size); ....這是什麼格式? – Kiarash

+0

請讓你的目標更清晰。你想讀回數值並生成格式化的輸出:'printf'?在這種情況下,'unpack()'Perl或PHP腳本可能比C++更容易。 –

回答

7

使用UNIX od命令,使用-t f4選項將文件讀取爲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函數打印數組。

任何其他方法將是醜陋和痛苦的;並不是說這一開始並不難看。

相關問題