Sdílet prostřednictvím


num_put::do_put

Virtuální funkce volané číslo převést sekvence CharTypes, který představuje číslo formátované pro dané národní prostředí.

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;

Parametry

  • _Next
    Adresování první prvek řetězce vloženého iterátoru.

  • _Iosbase
    Zadaný datový proud, obsahující národní prostředí s prvkem numpunct slouží k nepravidelné plochy výstupu a příznaky pro formátování výstupu.

  • _Fill
    Znak, který se používá pro mezery.

  • _Val
    Číslo nebo typu Boolean, která má být výstup.

Vrácená hodnota

Iterace výstupu vyrobených jednu pozici za poslední prvek adresy.

Poznámky

První virtuální chráněné členské funkce generuje sekvenční prvky od _Next k výrobě celé výstupní pole z hodnoty _Val.Iterační jmenování další místo vložit prvek mimo výstupní pole generovaný celé číslo, vrátí funkce.

Výstupní pole integer je generována podle stejných pravidel používaných tiskových funkcí pro generování řadu char prvků do souboru.Předpokládá se každý znak prvek mapovat na odpovídající prvek typu CharType mapováním jednoduchý 1: 1.Pokud tiskové funkce však pads pole mezerami nebo číslice 0, do_put místo toho používá výplně.Specifikace tisku ekvivalentní převodu se určí takto:

  • Pokud iosbase. příznaky & ios_base::basefield== ios_base::ZZÚ, specifikaci převodu je lo.

  • Pokud iosbase.flags & ios_base::basefield == ios_base::hex, specifikaci převodu je lx.

  • Jinak je převod specifikace ld.

Pokud iosbase. šířky je nenulová, je před šířka pole této hodnoty.Pak zavolá funkci iosbase. šířky(0) šířka pole nastaven na hodnotu nula.

Odsazení dojde pouze v případě minimální počet prvků n nutné určit výstupní pole je menší než iosbase.width.Takové odsazení se skládá ze sekvence nšířky kopie výplně.Odsazení obsahu pak probíhá následujícím způsobem:

  • Pokud iosbase. příznaky & ios_base::adjustfield== ios_base::left, the flag is prepended.(Odsazení dojde po generovaný text).

  • Pokud iosbase.flags & ios_base::adjustfield == ios_base::vnitřní, příznak 0 před.(Pro výstup číselné pole odsazení dojde kde funkce tisku pro zapisování s 0.)

  • V opačném případě se před další příznak.(Odsazení dojde před vygenerované posloupnosti).

Nakonec:

  • Pokud iosbase. příznaky & ios_base::showpos je nenulová, příznak + před specifikaci převodu.

  • Pokud iosbase. příznaky & ios_base::showbase je nenulová, příznak # před specifikaci převodu.

Výstupní formát celé pole je dále určena Podmínka národního prostředífac vrácený voláním use_facet <numpunct<Elem> (iosbase.getloc).Konkrétně:

  • fac. seskupení určuje způsob seskupování číslic nalevo od desetinnou

  • fac. thousands_sep určuje pořadí, který odděluje skupiny číslic nalevo desetinnou

Pokud jsou uložené žádné omezení seskupení fac. seskupení (jeho první prvek má hodnotu CHAR_MAX), pak žádné výskyty fac.thousands_sep jsou generovány v poli výstup.Jinak oddělovače vloženy po převodu tisku.

Druhá funkce virtuální chráněný člen:

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

chová stejně jako první, s výjimkou, že nahradí specifikace převodu ld s lu.

Třetí funkce virtuální chráněný člen:

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

chová stejně jako první, která vyrábí plovoucí výstupní pole z hodnoty val.fac. decimal_point určuje pořadí oddělující číslic celé číslo od zlomek číslic.Specifikace tisku ekvivalentní převodu se určí takto:

  • Pokud iosbase. příznaky & ios_base::floatfield== ios_base::pevnou, specifikaci převodu je lf.

  • Pokud iosbase. příznaky & ios_base::floatfield == ios_base::vědecké, specifikaci převodu je le.Pokud iosbase. příznaky & ios_base::velká je nenulová, e je nahrazen e.

  • Jinak je převod specifikace lg.Pokud iosbase. příznaky & ios_base::UpperCase je nenulová, g je nahrazen g.

Pokud iosbase. příznaky & ios_base::Fixed je nenulová nebo iosbase. precision je větší než nula, precision s hodnotou iosbase. precision před specifikaci převodu.Čalounění chová stejně jako výstupní pole celé číslo.Odsazení znaku výplně.Nakonec:

  • Pokud iosbase. příznaky & ios_base::showpos je nenulová, příznak + před specifikaci převodu.

  • Pokud iosbase. příznaky & ios_base::showpoint je nenulová, příznak # před specifikaci převodu.

Čtvrté virtuální chráněné členské funkce:

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

chová stejně jako třetí, kromě kvalifikátor l v převodu je nahrazen specifikace l.

Pátý virtuální chráněné členské funkce:

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

chová stejně první specifikace převodu je p**,** plus všechny kvalifikátor potřebná pro určení odsazení.

Šestý virtuální chráněné členské funkce:

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

chová stejně jako první, která generuje pole logický výstup z _Val.

Pole logický výstup trvá dvě formy.Pokud iosbase. příznaky & ios_base::boolalpha je false, členské funkce vrátí do_put(_Další, _Iosbase, _vyplnit, (dlouhý)_Val), obvykle produkuje vygenerované posloupnosti buď 0 (pro false) nebo 1 (pro true).Jinak generované sekvence je buď fac.falsename) (for false), or fac.truename (for true).

Sedmý virtuální chráněné členské funkce:

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

chová stejně jako první, s výjimkou, že nahradí specifikace převodu ld s lld.

Osmá virtuální chráněné členské funkce:

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

chová stejně jako první, s výjimkou, že nahradí specifikace převodu ld s llu.

Příklad

Příklad pro put, který vyzývá do_put.

Požadavky

Záhlaví: <locale>

Obor názvů: std

Viz také

Referenční dokumentace

num_put Class