Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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
有没有一种方法可以捕获lua中的输出?_Lua_Load_Lua 5.2 - Fatal编程技术网

有没有一种方法可以捕获lua中的输出?

有没有一种方法可以捕获lua中的输出?,lua,load,lua-5.2,Lua,Load,Lua 5.2,我试图捕获例如print('Hello')的输出,并将其存储在变量/表中 请让我知道这是否可能。如果没有,谢谢回答。您不能直接截取标准输出,但您可以更改全局打印功能: local outputs = {} local function storeOutputs(...) table.insert(outputs, {...}) end local oldPrint = print function print(...) storeOutputs(...) oldPrint(...)

我试图捕获例如print('Hello')的输出,并将其存储在变量/表中


请让我知道这是否可能。如果没有,谢谢回答。

您不能直接截取标准输出,但您可以更改全局
打印功能:

local outputs = {}
local function storeOutputs(...)
  table.insert(outputs, {...})
end

local oldPrint = print
function print(...)
  storeOutputs(...)
  oldPrint(...)
end

我不确定是否有办法处理
io。写
电话。

我不知道你想做什么。您似乎在寻求一种截取输出的方法,但与输出无关。在您的示例中,
print
不返回任何内容,但
load
需要一个字符串或函数参数。我正在尝试捕获例如print('Hello')的输出,并将其存储在变量/表中,很抱歉解释不正确。分配给
io.stdout
不会影响
io.write()
行为。Lua不使用io.stdout(情况非常类似于
\u G
),感谢您如此快速地回答,并且非常符合我的要求@埃戈尔斯克里普图诺夫:糟糕透了。我现在必须删除我答案中的那一部分。可能有一种更复杂的方法,比如重写所有与输出相关的
io
函数。@luther-请参阅
io.output()