Oracle® Solaris Studio 12.4: C++ ユーザーズガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

13.7 マニピュレータ

マニピュレータとは、iostream に挿入したり、iostream から抽出したりする値で特別な効果があります。

引数付きマニピュレータとは、1 つ以上の追加の引数を持つマニピュレータのことです。

マニピュレータは通常の識別子であるため、マニピュレータの定義を多く行うと可能な名前を使いきってしまうので、iostream では考えられるすべての機能に対して定義されているわけではありません。マニピュレータの多くは、この章の別の箇所でメンバー関数とともに説明しています。

定義済みの 13 個のマニピュレータを次の表に示します。この表は、次のことを想定しています。

  • ilong 型です。

  • nint 型です。

  • cchar 型です。

  • istr は 入力ストリームです。

  • ostr は 入力ストリームです。

表 13-2  iostream の定義済みマニピュレータ
定義済みマニピュレータ
説明
1
ostr << dec, istr >> dec
10 を基数とする整数変換を行います。
2
ostr << endl
改行文字 ('\n') を挿入し、ostream::flush() を呼び出します。
3
ostr << ends
null (0) 文字を挿入します。strstream 取引時に役に立ちます。
4
ostr << flush
ostream::flush() を呼び出します。
5
ostr << hex, istr >> hex
16 を基数とする整数変換を行います。
6
ostr << oct, istr >> oct
8 を基数とする整数変換を行います。
7
istr >> ws
最初に空白以外の文字が見つかるまで (この文字以降は istr に残る)、空白を取り除きます (空白を読み飛ばす)。
8
ostr << setbase(n), istr >> setbase(n)
変換の基数を n (0、8、10、16 のみ) に設定します。
9
ostr << setw(n), istr >> setw(n)
ios::width(n) を呼び出します。フィールド幅を n に設定します。
10
ostr << resetiosflags(i), istr>> resetiosflags(i)
i のビットセットに従って、フラグのビットベクトルをクリアします。
11
ostr << setiosflags(i), istr >> setiosflags(i)
i のビットセットに従って、フラグのビットベクトルを設定します。
12
ostr << setfill(c), istr >> setfill(c)
詰め合わせる文字 (フィールドのパディング用) を c に設定します。
13
ostr << setprecision(n), istr >> setprecision(n)
浮動小数点の精度を n 桁に設定します。

定義済みマニピュレータを使用するには、プログラムにヘッダーファイルiomanip.h をインクルードする必要があります。

ユーザーが独自のマニピュレータを定義することもできます。マニピュレータには次の 2 つの基本タイプがあります。

  • 引数なしのマニピュレータ – istream&ostream&ios& のいずれかを引数として取り、ストリームで処理を行い、その引数を返します。

  • 引数付きのマニピュレータ – istream&ostream&ios& のいずれかと、そのほかもう 1 つの引数 (追加の引数) を取り、ストリームで処理を行い、ストリーム引数を返します。