gpt4 book ai didi

lua - 如何在 Lua 中格式化超过 99 个字符的字符串

转载 作者:行者123 更新时间:2023-12-04 00:12:09 25 4
gpt4 key购买 nike

我正在格式化要打印到控制台的字符串,并尝试针对终端大小进行格式化。但是,Lua 似乎不允许任何超过 99 个字符的格式。 ( source )

在终端宽度大于 100 列的情况下,我还能如何填充字符串以使用整行?或者打印一些右对齐的东西?我知道我可以用一个循环来做数学和填充空间,但感觉效率很低。还有什么我想念的吗?也许是一些终端控制字符?

更新:我在源代码中链接了错误的地方。 This似乎是我挂断的功能。如第 1087 行所述,它只允许 2 位数字来指定字段大小。

我正在尝试做的一个例子:

操作的每 X 次迭代,我打印一行格式如下:

"\rDone: %d, Left %d, Current: %s"

这每次都会清除线路以保持状态更新,而不会用线路向控制台发送垃圾邮件。

问题 是当字符串 /long-path/to/file-name 被打印为 %s 参数时下一次迭代打印 /path/to/file,保留上一行的一部分,因为它没有被较短的行覆盖。使用格式将行填充到控制台的整个宽度可防止这些“遗留”字符。

最佳答案

您可以尝试打印一些 ANSI Escape Codes .请参阅“光标位置”代码。

由于您不能将控制代码直接写入字符串中,因此您必须使用string.char。生成包含控制代码的字符串。

另一种选择是预先生成每个所需长度的填充字符串并在以后引用它们:

padding = {}
padding[1] = " "
for i = 2,MAX_PAD do
padding[i] = padding[i-1].." "
end
-- now padding[i] is a string of i spaces.

在传递给 string.format 之前,将填充字符串与格式字符串的其余部分连接起来。

关于lua - 如何在 Lua 中格式化超过 99 个字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50045937/

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