如何将 lua 文件中的字符串获取到 C++?

我正在尝试将 Lua 中的字符串传递给 C++ 中的 char。但是由于某些原因它返回指针或数字。我需要您的帮助来解决这个问题。这是我尝试做的一个示例:

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 %d\n", *logoX);
}

但是输出的文字是 "the logo is 105"。非常感谢您的帮助。谢谢!

点赞
用户3854322
用户3854322

问题在于你的 printf 语句:

printf("the logo is %d\n", *logoX);

你使用的是整数格式字符串(%d),而你发送的是一个字符参数(*logoX,即你的字符串的第一个字符)。因此打印的值是字符串的第一个字符的整数值。

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

printf("the logo is %s\n", logoX);
2014-07-26 01:06:14