【问题标题】:Trouble in aligning numbers?对齐数字有问题吗?
【发布时间】:2014-03-12 10:49:30
【问题描述】:

我得到了要打印的负值和正值的数字。我想使用如下代码:

cout<< setw(precN+8) << showpos << scientific << setprecision(precN)
    << xval_ << " " << yval_ << " " << zval_;

删除 showpos 会给出这样的结果:

0.000e+00 -1.675e-01 0.000e+00
0.000e+00 9.342e-02 0.000e+00

如您所见,第二列未向右对齐。开启showpos,它会按照我想要的方式正确对齐,

+0.000e+00 -1.675e-01 +0.000e+00
+0.000e+00 +9.342e-02 +0.000e+00

但我只是不想要积极的迹象。我尝试使用right 选项,但它不起作用。我做错了什么?以及如何在没有正号的情况下使用 cout 实现这种右对齐效果?

【问题讨论】:

    标签: c++ cout


    【解决方案1】:

    使用#include &lt;iomanip&gt; 绝对有意义,从而使用像std::setwstd::setfillstd::leftstd::right 之类的io 操作符(最后两个用于修改/定义对齐方式)

    使用这些可能会很痛苦,所以如果可能的话,我建议你看看像 Boost.Format 这样的库,以便于操作(printf 方式)

    【讨论】:

      猜你喜欢
      • 2019-11-22
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多