2017-04-24 131 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循環兩次。