num_get::get
Wyodrębnia wartości liczbowych lub logicznych z sekwencji znaków.
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
Początek zakresu znaków, z którego można odczytać liczbę._Last
Koniec zakresu znaków, z którego odczytanie liczby._Iosbase
Ios_base których flagi są używane przez konwersji._State
Państwo, do którego failbit (zobacz ios_base::iostate) dodaje się po awarii._Val
Wartość, która została odczytana.
Wartość zwracana
Iteratora po przeczytaniu wartość.
Uwagi
All member functions return do_get(_First, _Last, _Iosbase, _State, _Val).
Pierwsza funkcja wirtualnego chroniony członek próbuje dopasować kolejne elementy, począwszy od pierwszej sekwencji [_First, _Last) dopóki nie rozpoznał kompletne, całkowitą niepusty wejściowe pole.Jeśli pomyślne, to konwertuje to pole jej równoważnej wartości, jako typ long i zapisuje wynik w _Val.Zwraca iterację wyznaczające pierwszy element poza numeryczne pole wejściowe.W przeciwnym wypadku funkcja przechowuje nic w _Val i ios_base::failbit w _Państwo.Zwraca iterację wyznaczające pierwszy element poza każdy prefiks pole wejściowe prawidłową liczbą całkowitą.W przypadku, jeśli wartość zwracana jest równe ostatniego, zestawy funkcji ios_base::eofbit w _State.
Pole wejściowe całkowitą jest konwertowany na takie same zasady stosowane przez funkcje skanowania dopasowywania i konwersji szeregu char elementów z pliku.Każde takie char mapowania do elementu typu równoważne zakłada, że element CharType przez mapowanie proste, jeden do jednego.Specyfikacja konwersji równoważne skanowania jest ustalana w następujący sposób:
Jeśli iosbase. flagi & ios_base::basefield== ios_base::KTZ, specyfikacja konwersji jest lo.
Jeśli iosbase.flags & ios_base::basefield == ios_base::hex, specyfikacja konwersji jest lx.
Jeśli iosbase.flags & ios_base::basefield == 0, specyfikacja konwersji jest li.
W przeciwnym razie specyfikacja konwersji jest ld.
Format pola wejściowego całkowitą dalsze ustalona przez locale aspektfac zwrócony przez wywołanie use_facet <numpunct<Elem> (iosbase.getloc).W szczególności:
fac. grupowania określa sposób grupowania cyfr po lewej stronie dowolnego przecinka dziesiętnego.
fac. thousands_sep Określa sekwencję oddzielający grup cyfr po lewej stronie dowolnego przecinka dziesiętnego.
Jeśli nie wystąpienia fac.thousands_sep występują w numeryczne pole wejściowe jest nałożone nie ograniczenie grupowania.W przeciwnym razie grupowania ograniczenia nałożone przez fac. grupowania jest wymuszana i separatory są usuwane, zanim nastąpi konwersja skanowania.
Druga funkcja wirtualnego chroniony członek:
virtual iter_type do_get(iter_type _First, iter_type _Last,
ios_base& _Iosbase, ios_base::iostate& _State,
unsigned long& _Val) const;
zachowuje się tak samo, jak pierwszy, chyba że zastępuje ona specyfikacja konwersji ld z lu.Jeśli pomyślne, konwertowane numeryczne pole wejściowe na wartości typu unsigned long i zapisanie tej wartości w _Val.
Trzecią funkcję wirtualnych chroniony członek:
virtual iter_type do_get(iter_type _First, iter_type _Last,
ios_base& _Iosbase, ios_base::iostate& _State,
double& _Val) const;
działa tak samo, jak pierwszy, chyba że próbuje dopasować kompletne, niepuste pole wejściowe zmiennoprzecinkowych.fac. decimal_point Określa sekwencję oddzielający cyfr całkowitą od cyfry ułamka.Specyfikator konwersji równoważne skanowania jest lf.
Czwarty funkcji wirtualnych chroniony członek:
virtual iter_type do_get(iter_type _First, iter_type _Last,
ios_base& _Iosbase, ios_base::iostate& _State,
long double& _Val) const;
działa tak samo trzeci, z wyjątkiem, że specyfikatora konwersji równoważne skanowania Lf.
Funkcja wirtualnego chroniony członek piąty:
virtual iter_type do_get(iter_type _First, iter_type _Last,
ios_base& _Iosbase, ios_base::iostate& _State,
void *& _Val) const;
działa tak samo pierwszy, z wyjątkiem, że specyfikatora konwersji równoważne skanowania p.
Szósty funkcji wirtualnych chroniony członek:
virtual iter_type do_get(iter_type _First, iter_type _Last,
ios_base& _Iosbase, ios_base::iostate& _State,
bool& _Val) const;
działa tak samo, jak pierwszy, chyba że próbuje dopasować kompletne, niepuste pole wprowadzania wartości logicznych.Jeżeli pomyślnie go konwertuje wejściowe pole logiczne wartości typu bool i zapisanie tej wartości w _Val.
Pole wejściowe logiczne przyjmuje jedną z dwóch form.Jeśli iosbase. flagi & ios_base::boolalpha jest false, jest taki sam, jak pole wejściowe całkowitą, z wyjątkiem, że konwertowaną wartość musi być albo 0 (dla false) lub 1 (dla true).W przeciwnym razie musi odpowiadać sekwencji albo fac.falsename (for false), or fac.truename (for true).
Przykład
// 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;
}
Dane wyjściowe
.
money_get( ) = -1000.56
Wymagania
Nagłówek: <locale>
Obszar nazw: std