1
我有一個二進制文件,我想用lua讀取它的內容。我知道它包含以4個字節表示的浮點數,它們之間沒有間隔。所以我打開文件並做t=file:read(4)
。現在我想打印數字的非二進制表示,但如果我做print(t)
,我只能得到像x98xC1x86那樣的東西。我該怎麼辦?如何在lua中打印從二進制文件中讀取的數字?
我有一個二進制文件,我想用lua讀取它的內容。我知道它包含以4個字節表示的浮點數,它們之間沒有間隔。所以我打開文件並做t=file:read(4)
。現在我想打印數字的非二進制表示,但如果我做print(t)
,我只能得到像x98xC1x86那樣的東西。我該怎麼辦?如何在lua中打印從二進制文件中讀取的數字?
如果你正在運行的Lua 5.3,試試這個代碼:
t=file:read(4)
t=string.unpack(t,"f")
print(t)
庫函數string.unpack
二進制數據轉換到Lua類型。
我使用這個在火炬,它與lua 5.2來。那麼,有沒有其他的選擇? – Controller
您可以使用[Robertos結構庫](http://www.inf.puc-rio.br/~roberto/struct/)在舊版本的Lua中獲得相同的功能。 –
也是我自己的[lpack](http://webserver2.tecgraf.puc-rio.br/~lhf/ftp/lua/index.html#lpack)。 – lhf