num_put::do_put

Eine virtuelle Funktion, die aufgerufen wird, um eine Zahl in eine Folge von CharType s zu konvertieren, die Zahl darstellt, formatierte für ein bestimmtes Gebietsschema.

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;

Parameter

  • _Next
    Ein Iterator, der das erste Element der eingefügten Zeichenfolge behandelt.

  • _Iosbase
    Gab den Stream an, der mit dem Gebietsschema numpunct Facet enthält, das verwendet wird, um die Ausgabe zu interpunktieren und zum Formatieren der Ausgabe verfügt.

  • _Fill
    Ein Zeichen, das für den Abstand verwendet wird.

  • _Val
    Die Zahl oder der boolesche Typ, der ausgegeben werden soll.

Rückgabewert

Ein Ausgabeiterator die Adressen, die die Position eine über dem letzten Element hinaus erzeugt wurde.

Hinweise

Die erste geschützte virtuelle Memberfunktion generiert die sequenziellen Elemente, die bei _Next starten, um ein Ausgabefeld der ganzen Zahl vom Wert von _Val zu erzeugen.Die Funktion gibt einen Iterator zurück, der den folgenden Stelle festgelegt werden, um ein Element über dem generierten Ausgabefeld der ganzen Zahl hinaus einzufügen.

Das Ausgabefeld der ganzen Zahl wird durch die gleichen Regeln generiert, die durch die Druckfunktionen zugegriffen zum Generieren einer Reihe von char-Elemente zu einer Datei verwendet werden.Die einzelnen charelement wird angenommen, dass zu einem entsprechenden Element des Typs CharType zuzuordnen, über eine einfache Eins-zu-Eins-Zuordnung.Wenn eine Druckfunktion ein Feld mit entweder Leerzeichen gefüllt wird, oder die Ziffer 0 verwendet jedoch do_put stattdessen fill.Die entsprechende DrucksUmwandlungsangabe wird bestimmt, wie folgt:

  • Wenn iosbase.Flags &. ios_base::basefield == ios_base::Okt, die Umwandlungsangabe ist lo.

  • Wenn iosbase.flags &. ios_base::basefield == ios_base::Hexadezimal, die Umwandlungsangabe lx ist.

  • Andernfalls ist die Umwandlungsangabe ld.

Wenn iosbase.Breite ist, eine Feldbreite dieses Werts wird vorangestellt ungleich 0 (null).Die Funktion ruft dann iosbase an.Breite(0) in der Feldbreite auf null zurückzusetzen.

Die Auffüllung tritt nur auf, wenn die Mindestanzahl von Elementen N erfordert, das Ausgabefeld anzugeben iosbase kleiner als ist.Breite.Solche Auffüllung besteht aus einer Sequenz von N - Breite Kopien von fill.Anschließend tritt die Auffüllung auf, wie folgt:

  • Wenn iosbase.flags &. ios_base::adjustfield == ios_base::nach links, das Flag vorangestellt wird.(Die Auffüllung tritt auf, nachdem der generierte Text).

  • Wenn iosbase.flags &. ios_base::adjustfield == ios_base::intern, das Flag 0 vorangestellt wird.(Für ein numerisches Ausgabefeld, tritt das Auffüllen auf, an die Drucksfunktionsauflage mit 0.)

  • Andernfalls wird kein zusätzliches Flag vorangestellt.(Auffüllungen tritt auf, bevor die generierte Sequenz.)

Schließlich:

  • Wenn iosbase.flags &. ios_base::showpos ist, das Flag + vorangestellt wird zur Umwandlungsangabe ungleich 0 (null).

  • Wenn iosbase.flags &. ios_base::showbase ist, das Flag # vorangestellt wird zur Umwandlungsangabe ungleich 0 (null).

Das Format eines Ausgabefelds der ganzen Zahl ist durch Gebietsschemafacetfac weitere entschlossenes, das durch den Aufruf use_facet <numpunct<Elem> zurückgegeben wird (iosbase.getloc).Dies gilt insbesondere in folgenden Fällen:

  • fac.Gruppieren bestimmt, wie Ziffern auf der linken Seite eines beliebigen Dezimaltrennzeichen gruppiert werden

  • fac.thousands_sep bestimmt die Reihenfolge, die Zahlengruppen auf der linken Seite eines beliebigen Dezimaltrennzeichen trennt

Wenn keine Gruppenspalten Einschränkungen durch fac entstehen.Gruppierung (erstes Element hat den Wert CHAR_MAX), dann keine Instanzen von fac.thousands_sep werden auf dem Ausgabegebiet generiert.Andernfalls werden Trennzeichen eingefügt, nachdem die Druckskonvertierung auftritt.

Die zweite geschützte virtuelle Memberfunktion:

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

verhält sich genauso wie das erste, außer dass ersetzt eine Umwandlungsangabe von ld durch lu.

Die dritte geschützte virtuelle Memberfunktion:

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

verhält sich genauso wie das erste, außer dass erzeugt ein Gleitkommaausgabefeld vom Wert von val.fac.decimal_point bestimmt die Reihenfolge, die die ganzzahligen Ziffern von den Bruchsziffern trennt.Die entsprechende DrucksUmwandlungsangabe wird bestimmt, wie folgt:

  • Wenn iosbase.flags &. ios_base::floatfield == ios_base::fest, die Umwandlungsangabe ist lf.

  • Wenn iosbase.flags &. ios_base::floatfield == ios_base::wissenschaftlich, die Umwandlungsangabe ist le.Wenn iosbase.flags &. ios_base::Großbuchstaben ist, wird e ersetzt durch E ungleich 0 (null).

  • Andernfalls ist die Umwandlungsangabe lg.Wenn iosbase.flags &. ios_base::uppercase ist, wird g ersetzt durch G ungleich 0 (null).

Wenn iosbase.flags &. ios_base::fixed ist oder wenn iosbase ungleich 0 (null).Genauigkeit ist größer als null, eine Genauigkeit mit dem Wert iosbase.precision wird zur Umwandlungsangabe vorangestellt.Jede Auffüllungen verhält sich genauso wie für ein Ausgabefeld der ganzen Zahl.Als Auffüllzeichen ist fill.Schließlich:

  • Wenn iosbase.flags &. ios_base::showpos ist, das Flag + vorangestellt wird zur Umwandlungsangabe ungleich 0 (null).

  • Wenn iosbase.flags &. ios_base::showpoint ist, das Flag # vorangestellt wird zur Umwandlungsangabe ungleich 0 (null).

Die vierte geschützte virtuelle Memberfunktion:

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

verhält sich genauso das dritte, dass der Qualifizierer l in der Umwandlungsangabe wird durch L ersetzt.

Die fünfte geschützte virtuelle Memberfunktion:

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

verhält sich genauso das erste, außer dass die Umwandlungsangabe ist p**,** plus jeden Qualifizierer, der erforderlich ist, um den Abstand anzugeben.

Die 6. geschützte virtuelle Memberfunktion:

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

verhält sich genauso wie das erste, außer dass generiert ein Ausgabefeld eines booleschen Werts von _Val.

Ein Ausgabefeld eines booleschen Werts nimmt eines von zwei Formularen.Wenn iosbase.flags &. ios_base::boolalpha ist false, die Memberfunktionsrückgaben do_put(_Next, _Iosbase, _Fill, (long)_Val), die in der Regel eine generierte Sequenz entweder von 0 (für false) oder 1 erzeugt (für true).Andernfalls ist die generierte Sequenz jedes fac.falsename) (für false) oder fac.truename (für true).

Die 7. geschützte virtuelle Memberfunktion:

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

verhält sich genauso wie das erste, außer dass ersetzt eine Umwandlungsangabe von ld durch lld.

Die achte geschützte virtuelle Memberfunktion:

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

verhält sich genauso wie das erste, außer dass ersetzt eine Umwandlungsangabe von ld durch llu.

Beispiel

Im Beispiel für eingefügt, das do_put aufruft.

Anforderungen

Header: <locale>

Namespace: std

Siehe auch

Referenz

num_put Class