#include "stdafx.h"
#include <stdio.h>
#include <vector>
#include <string>
#include <iostream>
using namespace std;
extern "C"
{
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
};
typedef struct data
{
string name;
double rot;
}DATA,*LPDATA;
vector<DATA> vec;
void main( void)
{
DATA info;
lua_State* L = luaL_newstate();
if ( luaL_dofile(L,"add1.lua"))
{
cout<<"Error to open file" <<endl ;
}
lua_getglobal(L,"data");
if ( lua_istable(L, -1) != 1)
{
cout<< "data is not table" <<endl;
}
lua_pushnil(L);
while ( lua_next( L ,-2 ) != 0 )
{
//printf("%s - %s/n",lua_typename(L, lua_type(L, -2)),lua_typename(L, lua_type(L, -1)));
///* 移除 'value' ;保留 'key' 做下一次迭代 */
//lua_pop(L, 1);
info.name = lua_tostring(L,-1);
lua_pop(L,1);
vec.push_back(info);
}
for ( int i = 0 ; i < vec.size() ; i++ )
{
cout<<vec[i].name <<endl;
}
//cout<< temp[0].name <<"/t" <<temp[0].rot <<endl;
//cout<<"--------------"<<endl;
//cout<<temp[1].name <<"/t" <<temp[1].rot <<endl;
}
add1.lua
data =
{
name = "jingpeng" ,
roat = "kuku"
}