2015-03-18 98 views
3

我想從Lua表中獲取值。這是我寫在Program.cpp:C++ Lua從Lua表中獲取值

lua_State* lua = luaL_newstate(); 
luaL_openlibs(lua); 
luaL_dofile(program->getLuaState(), "Script.lua"); 

lua_getglobal(lua, "table"); 
lua_pushstring(lua, "x"); 
lua_gettable(lua, -2); 
printf("%i", lua_tonumber(lua, -1)); 

我在Script.lua寫了這個:

table = {x = 12, y = 32} 

的問題是,這只是在控制檯中寫入0。我檢查了lua文件加載正確。我究竟做錯了什麼?

回答

2

更改%i%glua_tonumber返回一個float或double,而不是一個int。

+0

哦,我的上帝,我現在覺得很愚蠢。我的文學試圖解決這個問題超過40分鐘。非常感謝 – 2015-03-18 21:04:41