我一直试图弄清楚如何在我的编译器中使用cout来对齐输出。我提到了几个问题,如this,但它没有帮助我。
以上链接使用<<right or <<left
然而,在使用2中的任何一个后,它并没有真正对齐我的输出,如下面的图像链接所示
正如您所看到的,d13的价格只有3位数,而其他4位则导致我的错位
因此,这就是我为了调整价格而做的事情
cout << "D13"
<< setw(7)
<< setfill(' ')
<< " "
<< d13p
<< right
<< setw(3)
<< setfill(' ')
<< " "
不幸的是,它不起作用。是否有任何替代的cout对齐方式?
答案 0 :(得分:2)
不要将setw
操纵器用于空格,将其设置为值
像
这样的东西std::cout << "D13" << std::right << std::setw(11) << d13p << ...;
“列”之间的间距将是自动的。
答案 1 :(得分:2)
不需要替代,只需正确使用setw()
即可。最简单的维护方法是将其用于所有字段:
cout << setfill(' ') // use once
// Field 'Durian'
<< setw(8)
<< left
<< "D13"
<< ' ' // Column spacing
// Field 'Price'
<< setw(5)
<< right
<< d13p
<< ' ' // Column spacing
// Field 'Qty'
<< setw(3)
<< right
<< d13qty
...