2016-12-06 3 views
1

私はsetw()に助けが必要です。私はこの感覚を持っています:結果を表示するC++プログラム

void PrintRecord(PLAYER &m, ostream &cout) 
{ 

    cout << setw(3) << m.PlayerID << '\t' << m.LastName << ',' << setw(4) 
     << m.FirstName; 
    if (m.Hits > 0 || m.Walks > 0 || m.Outs > 0) 
    { 
     cout << "\t\t" << setprecision(3) << fixed << m.Hits << '\t' 
      << m.Walks << '\t' << m.Outs << '\t' << m.BattingAvg 
      << '\t' << m.OnBaseAvg << endl; 
    } 
    else 
    { 
     cout << endl; 
    } 
} 

私のデータを列に印刷していません。私はalighn colmnsに自分のデータを印刷したい

おかげ

+2

cstdioからprintfを見てください。それはあなたの出力をフォーマットすることができます。 – byxor

答えて

1

あなたはそれぞれの値を印刷する前にsetwを呼び出すことによって、列の各値に対して同じ幅を設定する必要があります。通常、setwを使用する場合は、 '\ t'を使用する必要はありません。 setprecisionとは異なり、setwは「スティッキー」ではないので、各印刷値の前に設定する必要があります。

cout << setw(3) << m.PlayerID << setw(20) << m.LastName << ',' << setw(20) 
    << m.FirstName; 
if (m.Hits > 0 || m.Walks > 0 || m.Outs > 0) 
{ 
    cout << setw(20) << setprecision(3) << fixed << m.Hits << setw(20) 
     << m.Walks << setw(20) << m.Outs << setw(20) << m.BattingAvg 
     << setw(20) << m.OnBaseAvg << endl; 
}