gpt4 book ai didi

c++ - 变量不等同于 fstream 与声明

转载 作者:行者123 更新时间:2023-11-28 08:26:07 28 4
gpt4 key购买 nike

基本上,我是使用 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)()

最佳答案

要对此进行诊断,您可能想知道更多关于 Lua 的想法。我会将 Lua 端写为 assert(loadstring(s))()。如果 loadstring 失败,您当前的代码至多会打印出尝试调用 nil 的错误。使用序列中的 assert(),对 nil 的调用将被替换为关于错误原因的更多信息错误。

关于c++ - 变量不等同于 fstream 与声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4010668/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com