num_get::get
Číselná nebo logická hodnota extrahuje z posloupnost znaků.
iter_type get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
bool& _Val
) const;
iter_type get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned short& _Val
) const;
iter_type get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned int& _Val
) const;
iter_type get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long& _Val
) const;
iter_type get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long& _Val
) const;
iter_type get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long long& _Val
) const;
iter_type get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long long& _Val
) const;
iter_type get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
float& _Val
) const;
iter_type get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
double& _Val
) const;
iter_type get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long double& _Val
) const;
iter_type get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
void *& _Val
) const;
Parametry
_First
Začátek rozsahu znaků, ze které chcete číst číslo._Last
Konec rozsahu znaků, ze které chcete číst číslo._Iosbase
Ios_base jehož příznaky se používají převod._State
Státu, na které failbit (viz ios_base::iostate) je přidána při selhání._Val
Hodnota, která byla přečtena.
Vrácená hodnota
Iterační po hodnota byla přečtena.
Poznámky
All member functions return do_get(_First, _Last, _Iosbase, _State, _Val).
První virtuální chráněné členské funkce se pokusí vyhledat sekvenční prvků počínaje první v pořadí [_First, _Last) dokud byla uznána úplnou, neprázdné celé vstupní pole.Pokud úspěšný, převede toto pole na ekvivalentní hodnotu jako typ dlouhý a uloží výsledek do _Val.Vrátí iterátoru jmenování prvního prvku za číselné vstupní pole.Jinak funkce ukládá nic v _Val a ios_base::failbit v _stavu.Vrátí iterátoru jmenování prvního prvku mimo jakékoli předpony vstupní pole platné celé číslo.V případě, pokud je vrácená hodnota rovná se poslední, nastaví funkci ios_base::eofbit v _State.
Vstupní pole integer je převeden podle stejných pravidel používá pro porovnávání a převod řadu funkcí skenování char prvky ze souboru.Každé takové char prvek považován za mapovat na odpovídající prvek typu CharType mapováním jednoduchý 1: 1.Specifikace převodu rovnocenné kontroly se stanoví 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.
Pokud iosbase.flags & ios_base::basefield == 0, specifikace převodu je li.
Jinak je převod specifikace ld.
Formát vstupní pole integer 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 jakékoli desetinné čárky.
fac. thousands_sep určuje pořadí, který odděluje skupiny číslic nalevo desetinnou.
Pokud žádné výskyty fac.thousands_sep dojít v číselné vstupní pole je uloženo žádné omezení seskupení.Jinak omezeními seskupení zavedených fac. seskupení je vynuceno a oddělovače jsou odstraněny dříve, než dojde k převodu skenování.
Druhá funkce virtuální chráněný člen:
virtual iter_type do_get(iter_type _First, iter_type _Last,
ios_base& _Iosbase, ios_base::iostate& _State,
unsigned long& _Val) const;
chová stejně jako první, s výjimkou, že nahradí specifikace převodu ld s lu.Pokud úspěšný, převádí číselné vstupní pole pro hodnotu typu unsigned long a uloží hodnotu do _Val.
Třetí funkce virtuální chráněný člen:
virtual iter_type do_get(iter_type _First, iter_type _Last,
ios_base& _Iosbase, ios_base::iostate& _State,
double& _Val) const;
chová stejně jako první, s výjimkou, že se pokusí vyhledat kompletní, neprázdné plovoucí vstupní pole.fac. decimal_point určuje pořadí oddělující číslic celé číslo od zlomek číslic.Specifikátor rovnocenné kontroly převodu je lf.
Čtvrté virtuální chráněné členské funkce:
virtual iter_type do_get(iter_type _First, iter_type _Last,
ios_base& _Iosbase, ios_base::iostate& _State,
long double& _Val) const;
chová stejně třetí, je převod specifikátor rovnocenné prohledávání Lf.
Pátý virtuální chráněné členské funkce:
virtual iter_type do_get(iter_type _First, iter_type _Last,
ios_base& _Iosbase, ios_base::iostate& _State,
void *& _Val) const;
chová stejně první, je převod specifikátor rovnocenné prohledávání p.
Šestý virtuální chráněné členské funkce:
virtual iter_type do_get(iter_type _First, iter_type _Last,
ios_base& _Iosbase, ios_base::iostate& _State,
bool& _Val) const;
chová stejně jako první, s výjimkou, že se pokusí vyhledat kompletní, neprázdné vstupní pole boolean.Pokud úspěšný převádí vstupní pole Boolean hodnotu typu bool a uloží hodnotu do _Val.
Vstupní pole boolean trvá dvě formy.Pokud iosbase. příznaky & ios_base::boolalpha je false, je stejný jako vstupní pole integer, kromě toho, že převedené hodnoty musí být buď 0 (pro false) nebo 1 (pro true).Pořadí jinak, musí odpovídat buď fac.falsename (for false), or fac.truename (for true).
Příklad
// num_get_get.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
locale loc( "german_germany" );
basic_stringstream<char> psz, psz2;
psz << "-1000,56";
ios_base::iostate st = 0;
long double fVal;
cout << use_facet <numpunct <char> >(loc).thousands_sep( ) << endl;
psz.imbue( loc );
use_facet <num_get <char> >
(loc).get( basic_istream<char>::_Iter( psz.rdbuf( ) ),
basic_istream<char>::_Iter(0), psz, st, fVal );
if ( st & ios_base::failbit )
cout << "money_get( ) FAILED" << endl;
else
cout << "money_get( ) = " << fVal << endl;
}
Výsledek
.
money_get( ) = -1000.56
Požadavky
Záhlaví: <locale>
Obor názvů: std