我正在寻找如何在 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 |
|---------|------------|-----------|
最佳答案
您可以使用 std::setw
cout 的操纵器。
还有一个 std::setfill
指定填充符,但默认为空格。
如果您想将值居中,则必须进行一些计算。我建议正确对齐这些值,因为它们是数字(而且更容易)。
cout << '|' << setw(10) << value << '|' setw(10) << value2 << '|' << endl;
不要忘记包含 <iomanip>
.
将它包装到一个通用的表格格式化程序函数中不会有太大的麻烦,但我会把它留给读者作为练习:)
关于C++ 和表格格式打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3867122/