不能让你排队

时间:2012-12-15 11:25:47

标签: c++ setw

我不确定如何更好地排好这个问题。我想通过使用L = name.length();并从setw中减去它会排得更好但是没有。我已正确设置nameID,但我似乎无法将其余部分排成一行。这些是floats btw。

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;

我试图让它更像这样...... Want I'm trying to go for

这就是我所拥有的...... This is what I have.

1 个答案:

答案 0 :(得分:0)

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

int L = name.length();

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

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