money_get::do_get
La funzione virtuale denominata a estratti un valore numerico da una sequenza di caratteri che rappresenta un valore monetario.
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
bool _Intl,
ios_base& _Iosbase,
ios_base::iostate& _State,
long double& _Val
) const
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
bool _Intl,
ios_base& _Iosbase,
ios_base::iostate& _State,
string_type& _Val
) const
Parametri
_First
Iteratore di input destinato all'inizio della sequenza da convertire._Last
Iteratore di input destinato alla fine della sequenza da convertire._Intl
Valore booleano che indica il tipo di simbolo di valuta previsto nella sequenza: se true internazionale, false se home._Iosbase
Un flag di formato che quando il set indica che il simbolo di valuta è facoltativo, in caso contrario, è obbligatorio._State
Imposta gli elementi appropriati della maschera di bit dello stato del flusso a seconda di come le operazioni sono completate o meno._Val
Stringa che contiene la sequenza convertita.
Valore restituito
Un iteratore di input destinato al primo elemento oltre il campo di input monetario.
Note
La prima funzione membro virtuale protetta tenta di individuare gli elementi sequenziali che avvia innanzitutto nella sequenza [_First, _Last) finché non viene riconosciuto un campo di input monetario completo e non vuoto.Se l'operazione riesce, converte questo campo in una sequenza di uno o più cifre decimali, facoltativamente preceduta da un segno meno (–), rappresentare la quantità e archivia il risultato dell'oggetto _Valdi string_type.Restituisce un iteratore che definisce il primo elemento oltre il campo di input monetario.In caso contrario, la funzione viene memorizzata una sequenza vuota 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 monetario valido.In entrambi i casi, se il valore restituito corrisponde _Last, la funzione imposta ios_base::eofbit in _State.
La seconda funzione membro virtuale protetta si comporta come il primo, ma se impossibile convertire la sequenza facoltativamente con segno di cifre a un valore di tipo long double e gli archivi tale valore in _Val.
Il formato di un campo di input monetario è determinato da i facet delle impostazioni localifac restituito dall'effettiva chiamata use_facet <moneypunct<char, intl>> (iosbase.getloc).
In particolare:
fac.negative_format determina l'ordine in cui i componenti del campo si verificano.
fac.curr_symbol determina la sequenza di elementi che costituiscono un simbolo di valuta.
fac.positive_sign determina la sequenza di elementi che costituiscono un segno positivo.
fac.negative_sign determina la sequenza di elementi che costituiscono un segno negativo.
fac.il raggruppamento determina quali le cifre vengono raggruppate a sinistra del separatore decimale.
fac.thousands_sep determina l'elemento che separa i gruppi di cifre a sinistra del separatore decimale.
fac.decimal_point determina l'elemento che separa le cifre intere da quelle della frazione.
fac.frac_digits determina il numero di cifre significative della frazione a destra del separatore decimale.Nell'analisi una quantità monetaria con più cifre della frazione chiamati da frac_digits, do_get smette di analizzare dopo avere utilizzato al massimo caratteri frac_digits.
Se la stringa di segno (fac.negative_sign o fac.positive_sign) ha più di un elemento, solo il primo elemento è soddisfatta in cui l'elemento uguale a money_base::sign visualizzato nel modello di formato (fac.neg_format).Tutti gli elementi rimanenti vengono associati alla fine del campo di input monetario.Se nessuno dei due stringa ha un primo elemento corrispondente all'elemento successivo nel campo di input monetario, la stringa del segno viene adottata come vuoto e il segno è positivo.
Se iosbase.flag &showbase è diverso da zero, la stringa fac.curr_symbol deve corrispondere in cui l'elemento uguale a money_base::symbol visualizzato nel modello di formato.In caso contrario, se money_base::symbol si verifica alla fine del modello di formato e se nessun elemento della stringa di segno resta conseguenza, il simbolo di valuta non è soddisfatta.In caso contrario, il simbolo di valuta facoltativamente è errata.
Se nessun istanze fac.thousands_sep si trova nella parte di valore del campo di input monetario (dove l'elemento uguale a money_base::value visualizzato nel modello di formato), alcun vincolo di raggruppamento viene imposto.In caso contrario, tutti i vincoli di raggruppamento hanno imposto da fac.grouping viene applicato.Si noti che la sequenza risultante di cifre rappresenta un intero con facmeno significativo. le cifre decimali difrac_digits sono considerate a destra del separatore decimale.
Lo spazio vuoto arbitrario corrisponde in cui l'elemento uguale a money_base::space visualizzato nel modello di formato, se non viene visualizzato alla fine del modello di formato.In caso contrario, alcuno spazio vuoto interno è errata.Un elemento ch viene considerato spazio vuoto se use_facet <tipo C<char> > (iosbase.getloc).viene(ctype_base::space, de-ch) è true.
Esempio
Vedere l'esempio relativo ottenere, che chiama do_get.
Requisiti
intestazione: <locale>
Spazio dei nomi: deviazione standard