cppreference.com -> C++入出力フラグ

C++入出力フラグ

C++では標準入出力に使用するいくつかのフォーマットフラグを定義している。 これらはflags(), setf(), unsetf()関数で操作することができる。 例えば:

    cout.setf(ios::left);

このサンプルのようにすれば、すべてのcoutの出力を左寄せにすることができる。

フラグ意味
boolalpha"true", "false"という文字を使用してブール型のデータの入出力をできるようにする
dec数値型のデータが10進数で表示されるようになる
fixed浮動小数点数を固定小数点による標準記法(科学記法の逆)で表示する
hex数値データを16進数で表示する
internalもしフィールドを数値で埋める場合に、ベース文字と符号の間にスペースを入れる
left出力を左寄せにする
oct数値出力を8進法にする
right出力を右寄せにする
scientific浮動小数点数を科学記法で表示する
showbase数値を表示するベースを設定する
showpoint必要がない場合でも10進数でゼロを表示する
showpos正の数値の前に+の符号を表示する
skipwsストリームからの読み込みの際にホワイトスペース文字(スペース、タブ、改行)を読み飛ばす
unitbuf出力ごとに毎回バッファをフラッシュする
uppercase科学記法の"e"や16進数表記の"x"を大文字で出力する

フラグは以下のマニピュレータを使用して間接的に操作することができる。 多くのプログラマはendlマニピュレータは使用したことがあるだろう。 マニピュレータの使用法はendlと同じである。 例えば、decフラグをセットする場合には以下のコマンドを使用する:

  cout << dec;
<iostream>で定義されているマニピュレータ
マニピュレータ説明入力出力
boolalphaboolalphaフラグをONにするOO
decdecフラグをONにするOO
endl改行文字を出力し、ストリームをフラッシュするO
endsnull文字を出力するO
fixedfixedフラグをONにするO
flushストリームをフラッシュするX
hexhexフラグをONにするOO
internalinternalフラグをONにするO
leftleftフラグをONにするO
noboolalphaboolalphaフラグをOFFにするOO
noshowbaseshowbaseフラグをOFFにするO
noshowpointshowpointフラグをOFFにするO
noshowposshowposフラグをOFFにするO
noskipwsskipwsフラグをにするO
nounitbufunitbufフラグをOFFにするO
nouppercaseuppercaseフラグをOFFにするO
octoctフラグをONにするOO
rightrightフラグをにするO
scientificscientificフラグをONにするO
showbaseshowbaseフラグをONにするO
showpointshowpointフラグをONにするO
showposshowposフラグをONにするO
skipwsskipwsフラグをONにするO
unitbufunitbufフラグをONにするO
uppercaseuppercaseフラグをONにするO
wsホワイトスペースを読み飛ばすO
<iomanip>で定義されているマニピュレータ
マニピュレータ説明入力出力
resetiosflags( long フラグ )フラグで指定されたフラグをオフにするOO
setbase( int ベース )数値のベースをbaseに指定するO
setfill( int 文字 )詰め物文字を文字に設定するO
setiosflags( long フラグ )フラグで指定されたフラグをオンにするOO
setprecision( int p )数値型の精度を設定するO
setw( int 幅 )フィールドの幅をに設定するO