num_put::do_put

数値を表す CharType、のシーケンスに数値を変換するために呼び出される仮想関数は特定のロケール用に書式設定しました。

virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    bool _Val
) const;
virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    long _Val
) const;
virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    unsigned long _Val
) const;
virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    double _Val
) const;
virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    long double _Val
) const;
virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    const void * _Val
) const;
virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    const long long _Val
) const; virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    const unsigned long long _Val
) const;

パラメーター

  • _Next
    挿入するテキスト文字列の最初の要素を指定する反復子。

  • _Iosbase
    出力を強調するために使用される numpunct のファセットを使用してロケールが含まれ、出力の書式を指定するフラグを設定するストリームを指定します。

  • _Fill
    スペーシングに使用される文字。

  • _Val
    出力された数またはブール型。

戻り値

出力反復子最後の要素を越える位置 1 によって生成されるアドレス。

解説

最初の仮想で保護されたメンバー関数は _Valの整数値からの出力フィールドを生成 _Next から開始するシーケンシャル要素を生成します。関数は、生成される整数の出力フィールド以外の要素を挿入する次の場所を指定する反復子を返します。

整数の出力フィールドがファイルへの char の一連の要素を生成するには、print 関数で使用される同じ規則によって生成されます。そのような各文字の要素は単純な、1 対 1 のマッピングによって型 CharType の同等の要素にマップすると仮定されます。print 関数に空白とのフィールドに先行するゼロを埋め込むまたは 0 桁ただし、その後、do_put は、代わりに fillを使用します。同等の印刷変換の指定は次のように決定されます:

  • iosbaseの場合は。フラグ & ios_base::basefield の == ios_base::[10月]は、変換 lo仕様です。

  • iosbase.flags & ios_base::basefield の == ios_base::[16 進]が、変換 lx仕様の場合は。

  • それ以外の場合、変換は ld仕様です。

iosbaseの場合は。この、ゼロ以外の値フィールドの幅追加されます。関数は、iosbaseを呼び出します。フィールドの幅をゼロにリセットするwidth (0)。

パディングは出力フィールドを指定するために必要な要素 N の最小数が iosbase未満の場合にのみ発生します。。このような埋め込みは fillNwidth のコピーのシーケンスで構成されます。パディングは、次のようになっています:

  • iosbaseの場合は。flags & ios_base::adjustfield の == ios_base::は、フラグ 追加されます。埋め込みテキストが生成された後に発生します。)

  • iosbase.flags & ios_base::adjustfield の == ios_base::内部が、フラグ 0 追加されます。(数値の出力フィールドに、パディングすると、は 0 の print 関数の埋め込み場合にが発生します)。

  • それ以外の場合は、追加のフラグは追加されません。埋め込みが生成したシーケンス前に発生します。)

最後に:

  • iosbaseの場合は。flags & ios_base::showpos 変換は仕様にゼロ以外のフラグ + 追加されます。

  • iosbaseの場合は。flags & ios_base::showbase 変換は仕様にゼロ以外のフラグ # 追加されます。

整数の出力フィールドの形式は、呼び出し use_facet <numpunct<Elemによって返される > ロケールのファセットfac により、決定されます (iosbasegetloc)。具体的には、以下の警告があります。

  • facグループ化 は数字は、小数点の左側にグループ化する方法を決定します

  • facthousands_sep は、小数点の左側に数字のグループを区切るシーケンスを決定します。

グループの制約が facによって課されなければ。grouping (最初の要素値 CHAR_MAX があります)、および facのインスタンスを持たない。thousands_sep は出力フィールドで生成されます。それ以外の区切りは、の変換後に挿入します。

2 番目の仮想で保護されたメンバー関数は:

virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
    CharType _Fill, unsigned long _Val) const;

1 番目のと同様に動作します。ただし、luld 変換の指定を置き換えます。

3 番目の仮想で保護されたメンバー関数は:

virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
    CharType _Fill, double _Val) const;

1 番目のと同様に動作します。ただし、valの浮動小数点値から出力フィールドが生成されます。facdecimal_point には、小数桁の整数小数部をシーケンスを決定します。同等の印刷変換の指定は次のように決定されます:

  • iosbaseの場合は。flags & ios_base::floatfield の == ios_base::固定は、変換 lf仕様です。

  • iosbaseの場合は。flags & ios_base::floatfield の == ios_base::指数は、変換 le仕様です。iosbaseの場合は。flags & ios_base::大文字 は、E と、ゼロ以外の e 置き換えられます。

  • それ以外の場合、変換は lg仕様です。iosbaseの場合は。flags & ios_base::uppercase は G と、ゼロ以外の g 置き換えられます。

iosbaseの場合は。flags & ios_base::fixed は非ゼロまたは iosbase場合です。精度 は、ゼロの値 iosbaseで有効になっています。precision 変換は仕様に追加されます。どの埋め込みには、整数の出力フィールドの場合と同様に動作します。埋め込み文字は fillです。最後に:

  • iosbaseの場合は。flags & ios_base::showpos 変換は仕様にゼロ以外のフラグ + 追加されます。

  • iosbaseの場合は。flags & ios_base::showpoint 変換は仕様にゼロ以外のフラグ # 追加されます。

4 番目の仮想で保護されたメンバー関数は:

virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
    CharType _Fill, long double _Val) const;

行目同様に動作します。ただし、変換の修飾子が指定 l が、左辺に置き換えられます。

5 番目の仮想で保護されたメンバー関数は:

virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
    CharType _Fill, const void *_Val) const;

1 番目の同様に動作します。ただし、変換の指定には、埋め込みを指定するために必要なすべての修飾子と p**,** です。

6 番目の仮想で保護されたメンバー関数は:

virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
    CharType _Fill, bool _Val) const;

1 番目のと同様に動作します。ただし、_Valからブール型の出力フィールドが生成されます。

ブール型の出力フィールドは、2 種類のフォームから 1 を受け取ります。iosbaseの場合は。flags & ios_base::boolalphafalseのメンバー関数はを返します ( do_put_Next、_Iosbase、_Fill、[long] () _Val) ですが、通常は 0 ( falseの場合) または 1 で生成されたシーケンスを生成 true (の場合)。それ以外の場合、生成したシーケンスは、いずれかの facです。falsename)false (の場合) または factruename ( trueの場合)。

7 番目の仮想で保護されたメンバー関数は:

virtual iter_type do_put(iter_type next, ios_base& iosbase,
    Elem fill, long long val) const; 

1 番目のと同様に動作します。ただし、lldld 変換の指定を置き換えます。

8 番目の仮想で保護されたメンバー関数は:

virtual iter_type do_put(iter_type next, ios_base& iosbase,
    Elem fill, unsigned long long val) const; 

1 番目のと同様に動作します。ただし、lluと ld変換の指定を置き換えます。

使用例

do_putを呼び出す 設定の例を参照してください。

必要条件

ヘッダー: <locale>

名前空間: std

参照

関連項目

num_put Class