Condividi tramite


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

Vedere anche

Riferimenti

num_get Class