Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有C++; 是否可以通过C++返回一个函数返回字符串? -编辑- 好的,这个代码不起作用。有什么帮助吗 int flua_getinput(lua_State *L){ if(lua_isstring(L,1)){ cout << lua_tostring(L,1); cin >> input; cout << "\n"; lua_pushstring(L,input); }else{ cin >> input; cout << "\n"; lua_pushstring(L,input); } return 1; } Registering Function: lua_register(L,"getinput",flua_getinput); int flua\u getinput(lua\u State*L){ if(lua_-isstring(L,1)){ cout>输入; cout>输入; 您是否签出了?_C++_String_Function_Lua - Fatal编程技术网 输入; cout>输入; 您是否签出了?,c++,string,function,lua,C++,String,Function,Lua" /> 输入; cout>输入; 您是否签出了?,c++,string,function,lua,C++,String,Function,Lua" />

带有C++; 是否可以通过C++返回一个函数返回字符串? -编辑- 好的,这个代码不起作用。有什么帮助吗 int flua_getinput(lua_State *L){ if(lua_isstring(L,1)){ cout << lua_tostring(L,1); cin >> input; cout << "\n"; lua_pushstring(L,input); }else{ cin >> input; cout << "\n"; lua_pushstring(L,input); } return 1; } Registering Function: lua_register(L,"getinput",flua_getinput); int flua\u getinput(lua\u State*L){ if(lua_-isstring(L,1)){ cout>输入; cout>输入; 您是否签出了?

带有C++; 是否可以通过C++返回一个函数返回字符串? -编辑- 好的,这个代码不起作用。有什么帮助吗 int flua_getinput(lua_State *L){ if(lua_isstring(L,1)){ cout << lua_tostring(L,1); cin >> input; cout << "\n"; lua_pushstring(L,input); }else{ cin >> input; cout << "\n"; lua_pushstring(L,input); } return 1; } Registering Function: lua_register(L,"getinput",flua_getinput); int flua\u getinput(lua\u State*L){ if(lua_-isstring(L,1)){ cout>输入; cout>输入; 您是否签出了?,c++,string,function,lua,C++,String,Function,Lua,您签出了吗?显示如何从中获取字符*。显示如何从中获取字符*。最简单的方法是使用luabind。它自动检测并处理std::string,这样您就可以简单地使用std::string f()之类的函数并将其绑定到lua,当lua脚本调用它时,它将自动转换为本机lua字符串。最简单的方法是使用luabind。它自动检测并处理std::string,这样您就可以简单地使用std::string f()之类的函数并将其绑定到lua,当lua脚本调用它时,它将自动转换为本机lua字符串。如果出现错误,请尝试

您签出了吗?

显示如何从中获取字符*。

显示如何从中获取字符*。

最简单的方法是使用luabind。它自动检测并处理std::string,这样您就可以简单地使用std::string f()之类的函数并将其绑定到lua,当lua脚本调用它时,它将自动转换为本机lua字符串。

最简单的方法是使用luabind。它自动检测并处理std::string,这样您就可以简单地使用std::string f()之类的函数并将其绑定到lua,当lua脚本调用它时,它将自动转换为本机lua字符串。

如果出现错误,请尝试调用全局“getinput”(一个nil值)那么问题是没有命中lua_寄存器调用。必须通过调用注册函数加载
getinput
函数,或者如果函数在库中,则使用
require

如果出现错误
尝试调用全局“getinput”(一个nil值)
那么问题是没有命中lua_register调用。必须通过调用注册函数或使用
require
加载
函数(如果它在库中)。

是否尝试这样做

int lua_input(lua_State* L) {
    string input;
    cin >> input;
    lua_pushstring(L, input.c_str());
    return 1;
}

int main() {
    lua_State* L=lua_open();
    luaL_openlibs(L);
    lua_register(L,"input",lua_input);
    luaL_loadstring(L, "for i=1,4 do print('you typed '..input()); end");
    lua_pcall(L, 0, 0, 0);
}

你想做这样的事吗

int lua_input(lua_State* L) {
    string input;
    cin >> input;
    lua_pushstring(L, input.c_str());
    return 1;
}

int main() {
    lua_State* L=lua_open();
    luaL_openlibs(L);
    lua_register(L,"input",lua_input);
    luaL_loadstring(L, "for i=1,4 do print('you typed '..input()); end");
    lua_pcall(L, 0, 0, 0);
}

是的,这是可能的。如果你想要更多的答案,你必须提供更多的上下文:你尝试了什么,为什么它看起来不起作用?我不能仅仅举一个如何做的例子。我只是想学习C++和Lua。我不知道从什么开始。LuaCalp:Lua:[String ] init。Lua ]:尝试调用Global“GETinPin”。是的,这是可能的。如果你想要更多的答案,你必须提供更多的上下文:你尝试了什么,为什么它看起来不起作用?我不能仅仅举一个如何做的例子。我只是想学习C++和Lua。我不知道从什么开始。Lua错误:Lua: [String ] init。Lua“”:1:尝试调用全局“getinput”(一个nil值)+1我认为OP需要完整的代码。对于OP:如果你这样做,你还必须始终检查每个对loadstring或pcall的调用。并在结尾使用lua_close。@kaizer-你是对的。我只是想让它尽可能简单。+1我认为OP需要完整的代码。对于OP:如果你这样做,你还必须始终检查每个对lo的调用adstring或pcall。最后使用lua_close。@kaizer-你是对的。我只是想让它尽可能简单。