0

これをより良く並べる方法がわかりません。L = name.length();それを使ってから差し引くことで、setwより良いラインになると思いましたが、違います。正しく設定しましたがnameID残りを並べることができないようです。これらは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

出力ファイルをプロポーショナルフォントでノードパッドで開いたことがわかります。比例フォントで整列されている列は表示されません。フォントを固定に変更するか、ターミナルに入力しますtype output.txt

于 2012-12-15T15:13:47.010 に答える