2017-04-24 133 views
0

我有一个nxn网格的随机生成的数字。我有一个显示为X的元素数量和Y轴的标签:C++控制台 - 格式化输出

enter image description here

它正确对齐弥补单个数字,但是当网格尺寸增加了标签变得不成比例的和不排队像这样:

enter image description here

我想知道是否有什么办法可以使标签行了根据大小网格内的数字和刻度。这甚至有可能吗?

+0

你可以发布你的代码吗? – nitronoid

+0

随机数是否总是一位数? – nitronoid

回答

1

您可以用它来确定一个整数的位数:

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

有了这个,你可以决定的" "要打印的份数为您遍历。

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

您可以使用两行作为最上面的编号,并计算一个简单的计算以确定是否显示该行的数字。例如,第一行可以是单位的“十”列和第二行。你知道你有20列,所以如果一个循环的当前计数小于10,你可以显示空格字符或零。如果它不小于10,则显示1个字符。 底部的行可以通过0 - 9循环两次。