num_get::do_get
Una funzione virtuale denominata a estratti un tipo numerico o un valore booleano da una sequenza di caratteri.
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long& _Val
) const;virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned short& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned int& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long long& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long long& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
float& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
double& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long double& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
void *& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
bool& _Val
) const;
Parametri
_First
L'inizio dell'intervallo di caratteri da cui leggere il numero._Last
La fine dell'intervallo di caratteri da cui leggere il numero._Iosbase
ios_base dei flag utilizzati dalla conversione._State
Lo stato a cui il failbit (vedere ios_base::iostate) viene aggiunto in errore._Val
Valore letto.
Valore restituito
Un iteratore dopo che il valore è stato letto.
Note
La prima funzione membro virtuale, protetta
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long& _Val
) const;
corrisponde agli elementi sequenziali che iniziano a _First nella sequenza [_First,_Last) finché non viene riconosciuto un campo di input Integer completo e non vuoto.Se eseguita correttamente, converte questo campo nel valore equivalente come tipo long, e archivia il risultato in _Val.Restituisce un iteratore che definisce il primo elemento oltre il campo di input numerico.In caso contrario, la funzione non contiene alcuna operazione in _Val e imposta ios_base::failbit in state.Restituisce un iteratore che definisce il primo elemento a qualsiasi prefisso di un campo di input Integer valido.In entrambi i casi, se il valore restituito corrisponde last, la funzione imposta ios_base::eofbit in state.
Il campo di input Integer viene convertito in base alle stesse regole utilizzate dalle funzioni di funzionalità per associare e convertire una serie di elementi char da un file.(Ciascun elemento char viene utilizzato per eseguire il mapping a un elemento equivalente di tipo Elem da un semplice, uno-a-uno, eseguendo il mapping.) La specifica di conversione equivalenti di funzionalità è determinato come segue:
Se iosbase.ios_base::flags() & ios_base::basefield == ios_base::Ott, la specifica di conversione è lo.
Se iosbase.flags() & ios_base::basefield == ios_base::hex, la specifica di conversione è lx.
Se iosbase.flags() & ios_base::basefield == 0, la specifica di conversione è li.
In caso contrario, la specifica di conversione è ld.
Il formato di un campo di input Integer ulteriormente è determinato da i facet delle impostazioni localifac restituito dalla chiamata use_facet<numpunct<Elem>(iosbase.ios_base::getloc()).In particolare:
fac.numpunct::grouping() determina quali le cifre vengono raggruppate a sinistra del separatore decimale
fac.numpunct::thousands_sep() determina la sequenza che separa i gruppi di cifre a sinistra del separatore decimale.
Se nessuna istanza fac.thousands_sep() si verifica nel campo di input numerico, alcun vincolo di raggruppamento viene imposto.In caso contrario, tutti i vincoli di raggruppamento imposti da fac.grouping() si applicano e separatori vengono rimossi prima della conversione di scansione si verifichi.
La quarta funzione membro virtuale protetta:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long& _Val
) const;
si comporta come il primo, con la differenza che sostituisce una specifica di conversione ld con lu.Se impossibile convertire il campo di input numerico a un valore di tipo unsigned long e gli archivi tale valore in _Val.
La quinta funzione membro virtuale protetta:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long long& _Val
) const;
si comporta come il primo, con la differenza che sostituisce una specifica di conversione ld con lld.Se impossibile convertire il campo di input numerico a un valore di tipo long long e gli archivi tale valore in _Val.
La sesta funzione membro virtuale protetta:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long long& _Val
) const;
si comporta come il primo, con la differenza che sostituisce una specifica di conversione ld con llu.Se impossibile convertire il campo di input numerico a un valore di tipo unsigned long long e gli archivi tale valore in _Val.
La settima funzione membro virtuale protetta:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
float& _Val
) const;
si comporta come il primo, con la differenza che tenta di individuare un campo di input a virgola mobile completo e non vuoto.fac.numpunct::decimal_point() determina la sequenza che separa le cifre intere da quelle della frazione.L'identificatore equivalente di conversione di funzionalità è lf.
Il ottava funzione membro virtuale protetta:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
double& _Val
) const;
si comporta come il primo, con la differenza che tenta di individuare un campo di input a virgola mobile completo e non vuoto.fac.numpunct::decimal_point() determina la sequenza che separa le cifre intere da quelle della frazione.L'identificatore equivalente di conversione di funzionalità è lf.
La nona funzione membro virtuale protetta:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long double& _Val
) const;
si comporta lo stesso di ottavi, ma l'identificatore equivalente di conversione di funzionalità è Lf.
La nona funzione membro virtuale protetta:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
void *& _Val
) const;
si comporta lo stesso il primo, ma l'identificatore equivalente di conversione di funzionalità è p.
L'ultima (undicesima) funzione membro virtuale protetta:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
bool& _Val
) const;
si comporta come il primo, con la differenza che tenta di individuare un campo di input booleano completo e non vuoto.Se impossibile convertire il campo di input booleano a un valore di tipo bool e gli archivi tale valore in _Val.
Un campo di input booleano accetta una delle due forme.Se iosbase.flags() & ios_base::boolalpha è false, corrisponde a un campo di input Integer, ad eccezione del valore convertito deve essere 0 (per false) o 1 (per true).In caso contrario, la sequenza deve corrispondere fac.numpunct::falsename() (per false), o fac.numpunct::truename() (per true).
Esempio
Vedere l'esempio relativo ottenere, dove la funzione membro virtuale viene chiamata da do_get.
Requisiti
intestazione: <locale>
Spazio dei nomi: deviazione standard