变量不等于fstream与声明

时间:2010-10-24 21:57:00

标签: c++ lua

基本上我正在使用fstream读取文件的内容,然后将其转换为const char *类型。我将这个提供给Lua,Lua会对此做些什么。然而,这不起作用。如果我做了什么工作:

const char* data = "print('Hello world')";
luaL_pushstring(L, data);
luaL_setglobal(L, "z");

它们都是const char *类型,它们都是相同的字符串(例如,我比较了两个长度)。除了一个工作,另一个工作。我很困惑。这里有什么帮助?这是代码:

   std::string line,text;
   std::ifstream in("test.txt");
   while(std::getline(in, line))
   {
       text += line;
   }
   const char* data = text.c_str();
   luaL_pushstring(L, data);
   luaL_setglobal(L, "z");

这是Lua代码:

loadstring(z)()

2 个答案:

答案 0 :(得分:1)

要诊断这一点,您可能想要了解更多关于Lua的想法。我将Lua一边改为assert(loadstring(s))()。如果loadstring失败,您当前的代码最多会在尝试调用nil时打印错误。对于序列中的assert(),对nil的调用将被更多信息错误替换为错误。

答案 1 :(得分:0)

在推送值之前,您不必设置全局吗?无论如何,怎么了,卡莫:P