C ++控制台 - 格式化输出

时间:2017-04-24 02:22:38

标签: c++ format output

我有一个nxn网格随机生成的数字。我有一个标签显示X轴和Y轴的元素编号:

enter image description here

它可以正确对齐单位数字,但是当网格尺寸增加时,标签会变得不成比例,并且不会像这样排列:

enter image description here

我想知道是否有办法让标签与网格中的数字对齐,并根据尺寸进行缩放。这甚至可能吗?

2 个答案:

答案 0 :(得分:1)

您可以使用它来确定整数中的位数:

int getDigits(int col)
{
    int len = 1;
    while ( col/= 10 )
    {
        len++;
    }
    return len;
}

使用此功能,您可以在循环时确定要打印的" "的数量。

std::string space(getDigits(column), ' ');
std::cout<<space<<num;

答案 1 :(得分:0)

您可以使用两行作为顶部编号,并计算出一个简单的计算来确定是否显示该行的数字。 例如,顶行可以是“十”列,第二行可以是单位。您知道有20列,因此如果循环的当前计数小于10,则可以显示空格字符或零。如果它不小于10,则显示1个字符。 然后底行可以循环0到9两次。