lua学习笔记(一)---c++使用lua返回的table

 

最近想在自己的客户端程序里面嵌入lua,so来学习了一下lua,在测试一段分割字符串的代码时,函数返回了一个table,

一时不知道怎么写c++取数据的代码。问了一个群,才知道怎么写。c++代码如下

lua_State* l = lua_open();
luaL_openlibs(l);
if(!luaL_dofile(l,"version.lua"))
{
  lua_getglobal(l,"split");
  lua_pushstring(l,"20.3.4.5");
  lua_pcall(l,1,1,0);
  if(lua_istable(l,-1))
  {
    lua_pushnil(l);
    while(lua_next(l,-2)!=0)
    {
       if(lua_isstring(l,-1))
       {
         ...
       }
       lua_remove(l,-1);
    }
  }
}
lua_pop(l,1);
View Code

 

 lua代码如下

 1 function split(sPath)
 2   local s=sPath
 3   local t={}
 4   local i=0
 5   for w in string.gmatch(s,"%d+") do
 6      t[i]=w
 7      i=i+1
 8    end
 9   return t
10 end
View Code

l测试过了后,lua代码有问题,打印时table为3,4,5,20

还以为是排序过了,最后查了下才知道table的index应该从1开始。修改了local i = 1后代码ok了。

posted @ 2013-05-15 17:01  陈易水  阅读(610)  评论(0)    收藏  举报