C ++ setw相当于Lua?

时间:2016-09-04 16:58:17

标签: lua

我试图以表格的形式打印信息,其间的间距永远不会改变,有点像c ++中的setw

1 个答案:

答案 0 :(得分:5)

您可以使用string.format()。格式参考与ISO C&#39 {s} sprintf()printf()相同。为了快速参考,您可以使用例如this website

print(string.format("%10d%10d%10d", 114, 523, 15224))

将导致:

       114       523     15224

基本上你可以选择(整数):

function printTable(t, length)
    for _,row in pairs(t) do
        local format = ""
        for i=1,#row do format = format .. "%" .. length .. "d" end
        print(string.format(format, table.unpack(row)))
    end
end

这不是最有效的方式,但它会完成工作:

> S = {{432, 324, 5325, 4356}, {4325, 5643, 223, 543}, {234, 1, 23, 656}}
> printTable(S, 8)
     432     324    5325    4356
    4325    5643     223     543
     234       1      23     656