Cpp-standard-library-cpp-ios-fmtflags

提供:Dev Guides
移動先:案内検索

C ++ ios_base fmtflags

説明

この型は、メンバー関数flags、setfおよびunsetfによってパラメーターおよび/または戻り値として使用されます。

宣言

以下は、ios_base
fmtflagsの宣言です。
std::ios_base::fmtflags ff;

これらの関数によって渡され、取得される値は、以下に示すように、次のメンバー定数の任意の有効な組み合わせにすることができます-

フィールド

メンバー定数

設定時の効果

独立フラグ

+ boolalpha +

bool要素をアルファベット文字列として読み書きします( + true +`および `+ false +)。

+ showbase +

対応する数値ベースプレフィックスの後に整数値を書き込みます。

+ showpoint +

常に小数点を含む浮動小数点値を書き込みます。

+ showpos +

プラス記号(+)が前に付いた非負の数値を書き込みます。

+ skipws +

特定の入力操作で先頭の空白をスキップします。

+ unitbuf +

挿入操作ごとに出力をフラッシュします。

大文字

特定の挿入操作で小文字を置き換える大文字を書きます。

数値ベース

+ basefield +

+ dec +

10進基本形式を使用した整数値の読み取り/書き込み。

+ hex +

16進基本形式を使用した整数値の読み取り/書き込み。

+ oct +

8進基本形式を使用した整数値の読み取り/書き込み。

float format

+ floatfield +

+ fixed +

固定小数点表記で浮動小数点値を書き込みます。

+ scientific +

科学表記法で浮動小数点値を書き込みます。

調整

+ adjustfield +

内部

指定された内部ポイントに_fill characters_を挿入することにより、出力が_field width_に埋め込まれます。

出力は、_field width_に埋め込まれ、最後に_fill characters_が追加されます。

_fill characters_を先頭に挿入することにより、出力は_field width_に埋め込まれます。

以下に示すように、選択フラグの3つのグループのそれぞれの値の組み合わせで構成される3つの追加のビットマスク定数も使用できます。

flag value equivalent to
adjustfield `+left
right internal+`
basefield `+dec
oct hex+`
floatfield `+scientific

これらの定数の値は、ORビット単位演算子(|)を使用して単一のfmtflags値に結合できます。

以下に、ios_base
fmtflagsの例を示します。
#include <iostream>

int main () {

   std::cout.setf (std::ios_base::hex , std::ios_base::basefield);
   std::cout.setf (std::ios_base::showbase);
   std::cout << 100 << '\n';

   std::cout.setf (std::ios::hex , std::ios::basefield);
   std::cout.setf (std::ios::showbase);
   std::cout << 100 << '\n';

   std::cout.setf (std::cout.hex , std::cout.basefield);
   std::cout.setf (std::cout.showbase);
   std::cout << 100 << '\n';

   std::ios_base::fmtflags ff;
   ff = std::cout.flags();
   ff &= ~std::cout.basefield;
   ff |= std::cout.hex;
   ff |= std::cout.showbase;
   std::cout.flags(ff);
   std::cout << 100 << '\n';

   std::cout << std::hex << std::showbase << 100 << '\n';

   return 0;
}

上記のプログラムをコンパイルして実行すると、次の結果が生成されます-

0x64
0x64
0x64
0x64
0x64