C++ ストリーム出力の整形

よく使うマニピュレータ

left,right
左寄せ、右寄せ
dec,hex,oct
10進、16進、8進
setw()
フィールドの文字数指定(次のフィールドにしか影響しない)
setfill()
パティング文字
showbase
16進,8進のプレフィックスを表示(0x,0)
boolalpha
true,falseのシンボル表現

引数を取るマニピュレータは、#include <iomanip>が必要。

プログラミング言語C++第三版ではP714から解説がある。

プログラム例

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
  cout << hex << setw(8) << 50 << endl;
  cout << dec << setw(20) << left << 100 << endl;
  cout << dec << setw(20) << right << 200 << endl;

  cout << showbase;
  cout << hex << setw(8) << 50 << endl;
  cout << oct << setw(20) << 100 << endl;
  return 0;
}

出力

      32
100
                 200
    0x32
                0144

インデックス