2017-04-20 47 views
1

我有一個二進制文件,我想用lua讀取它的內容。我知道它包含以4個字節表示的浮點數,它們之間沒有間隔。所以我打開文件並做t=file:read(4)。現在我想打印數字的非二進制表示,但如果我做print(t),我只能得到像x98xC1x86那樣的東西。我該怎麼辦?如何在lua中打印從二進制文件中讀取的數字?

回答

3

如果你正在運行的Lua 5.3,試試這個代碼:

t=file:read(4) 
t=string.unpack(t,"f") 
print(t) 

庫函數string.unpack二進制數據轉換到Lua類型。

+0

我使用這個在火炬,它與lua 5.2來。那麼,有沒有其他的選擇? – Controller

+0

您可以使用[Robertos結構庫](http://www.inf.puc-rio.br/~roberto/struct/)在舊版本的Lua中獲得相同的功能。 –

+0

也是我自己的[lpack](http://webserver2.tecgraf.puc-rio.br/~lhf/ftp/lua/index.html#lpack)。 – lhf

相關問題