如何在Lua程序中清除控制台?

11

我正在使用控制台编写我的第一个Lua程序,我需要找出如何清除控制台中的所有文本,而不是仅向其中添加大量的 \n。

我在控制台编写Lua程序,想要清空控制台中的文本,而不是通过添加很多换行符来覆盖之前的文本。
4个回答

11
你可以使用os.execute()函数。
在Windows系统上:
os.execute("cls")

在Unix系统中:

os.execute("clear")

6

如果您的控制台支持ANSI终端转义序列,请尝试使用io.write("\027[H\027[2J")


3

如前一回复中所提到的,您可以使用os.execute()清除控制台。但是,如果您无法访问此功能,则可能被迫使用新行填充控制台,以使用户看起来“空白”。

然而,如果您能够使用os.execute,则应该毫不犹豫地使用它。

for i = 1, 255 do
    print()
end

聪明,非常聪明。 - theFish
当OP没有询问会导致垃圾信息的情况下,它会产生垃圾信息。 - Fox

2

抱歉回答晚了,但如果有人查看此帖子,这里有一种方法:

if not os.execute("clear") then
    os.execute("cls")
elseif not os.execute("cls") then
    for i = 1,25 do
        print("\n\n")
    end
end

这将在任何操作系统上都能运行。


我认为它永远不会运行“elseif”分支。 - val is still with Monica
代码也工作不正常,当我使用“清除”命令时它会产生新的行。 你没有在多个操作系统上进行正确的测试吗? - Fox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接