我正在寻找如何使用C ++进行打印,以便修复表格列宽。
目前我已经使用空格|
和-
,但是一旦数字达到两位数,所有对齐都会变坏。
|---------|------------|-----------|
| NODE | ORDER | PARENT |
|---------|------------|-----------|
| 0 | 0 | |
|---------|------------|-----------|
| 1 | 7 | 7 |
|---------|------------|-----------|
| 2 | 1 | 0 |
|---------|------------|-----------|
| 3 | 5 | 5 |
|---------|------------|-----------|
| 4 | 3 | 6 |
|---------|------------|-----------|
| 5 | 4 | 4 |
|---------|------------|-----------|
| 6 | 2 | 2 |
|---------|------------|-----------|
| 7 | 6 | 4 |
|---------|------------|-----------|
答案 0 :(得分:12)
您可以将std::setw
操纵器用于cout。
还有std::setfill
来指定填充符,但默认为空格。
如果要将值居中,则必须进行一些计算。我建议右对齐值,因为它们是数字(并且更容易)。
cout << '|' << setw(10) << value << '|' setw(10) << value2 << '|' << endl;
不要忘记包含<iomanip>
。
将它包装到一般的表格式化函数中并不会有太大的麻烦,但我会把它作为读者的练习:)
答案 1 :(得分:6)
您可以使用beautiful printf()
。我发现它更容易和格式比cout
更好。
示例:
int main()
{
printf ("Right align: %7d:)\n", 5);
printf ("Left align : %-7d:)\n", 5);
return 0;
}