如何从lua文件到c++获取字符串

How to get a string from lua file to c++

本文关键字:c++ 获取 字符串 文件 lua      更新时间:2023-10-16

我试图从lua到c++中的字符字符串。但由于某种原因,它返回一个指针或一个数字。我可以利用所有的帮助来解决这个问题。下面是我要做的一个例子:

Lua文件:

logo = "ad.png"

C文件:

lua_State *L = luaL_newstate();
luaL_openlibs(L);
luaL_dofile(L,"fuel.lua");
const char* logoX;
lua_getglobal(L, "logo");
if(lua_isnil(L,-1)){
    printf("is nil!n");
}
else{
    logoX = lua_tostring(L, -1);
    printf("the logo is %dn", *logoX);
}

但是这是打印出的文本说"the logo is 105"。任何帮助都是感激的。谢谢你!

问题在于您的printf语句:

printf("the logo is %dn", *logoX);

您正在使用整数格式字符串(%d),并且您正在发送字符参数(*logoX,这是您的字符串的第一个字符)。因此打印的值是字符串的第一个字符整数值。

要使其工作,将printf语句更改为:

printf("the logo is %sn", logoX);