我试图从Lua表中获取值.这是我在Program.cpp中写的:
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文件正确加载.我究竟做错了什么?
最佳答案 将%i更改为%g. lua_tonumber返回一个float或double,而不是int.