0

我不知道如何更好地排列这个。我认为通过使用L = name.length();并从中减去setw它会更好地排列,但不是。我有name并且ID设置正确,但我似乎无法让其余的排队。这些是floats顺便说一句。

for (int z=0; z<i ;z++){

  if( EInfo[z].valid >0){

    string name = employee[z].getName();
    int L = name.length();

    payReportObj << fixed << setprecision (2)  <<  endl;

      payReportObj  << setw(3) << employee[z].getID()
                  << setw(36)
                  << employee[z].getName()
                  << setw(30-L) << "$" << setw(4) << EInfo[z].grossPaySE
                  << setw(25) << "$" << setw(4) << EInfo[z].taxSE
                  << setw(15) << "$" << setw(4) << EInfo[z].insuranceSE
                  << setw(25) << "$" << setw(4) << EInfo[z].netPaySE;

我试图让它更像这样...... 想要我想去

这就是我所拥有的...这就是我所拥有的。

4

1 回答 1

0

替换setw(30-L)setw(30)。和这个:

int L = name.length();

不需要。如果要右对齐数字,请使用std::right.

您在 nodepad 中使用比例字体打开了输出文件。即使它们是按比例字体对齐的,您也不会看到列。将字体更改为固定或在终端中键入type output.txt

于 2012-12-15T15:13:47.010 回答