2011-09-15 82 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函数打印数组。

任何其他方法将是丑陋和痛苦的;并不是说这一开始并不难看。

相关问题