std::setw()
、std::left
およびstd::right
を使用します。
#include <iostream>
#include <iomanip>
void printNumber(int x) {
std::cout << "X:" << std::setw(6) << x << ":X\n";
}
void printStuff() {
printNumber(528);
printNumber(3);
printNumber(73826);
printNumber(37);
}
int main() {
std::cout << "Left-aligned\n";
std::cout << std::left;
printStuff();
std::cout << "Right-aligned\n";
std::cout << std::right;
printStuff();
}
出力:
Left-aligned
X:528 :X
X:3 :X
X:73826 :X
X:37 :X
Right-aligned
X: 528:X
X: 3:X
X: 73826:X
X: 37:X
(デモ: http://ideone.com/6IdIc )
この例では、予想される最大幅として 6 を使用しました。最大値がわからない場合は、データを最初にパスして確認するか、使用しているデータ型で可能な最大値を使用する必要があります (これを移植可能にするために、std::numeric_limits<T>::max
)。