Partager via


money_get::do_get

La fonction virtuelle a appelé aux extraits une valeur numérique d'une séquence de caractères qui représente une valeur monétaire.

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

Paramètres

  • _First
    Itérateur d'entrée adressant le début de la séquence à convertir.

  • _Last
    Itérateur d'entrée adressant la fin de la séquence à convertir.

  • _Intl
    Une valeur booléenne indiquant le type de symbole monétaire attendu dans la séquence : true s'int, false si domestique.

  • _Iosbase
    Une balise de format qui lorsque la valeur indique que le symbole monétaire est facultatif ; sinon, si nécessaire.

  • _State
    Définit les éléments appropriés de masque de bits pour l'état de flux selon que les opérations ont réussi ou pas.

  • _Val
    Une chaîne stockant la séquence convertie.

Valeur de retour

Un itérateur d'entrée adressant le premier élément au delà de le champ d'entrée monétaire.

Notes

Les premiers tests protégés virtuels de fonction membre pour faire correspondre les éléments séquentiels démarrage d'abord dans la séquence [_First, _Last) jusqu'à ce qu'elle soit identifié un champ d'entrée monétaire complet et non vide.En cas de réussite, il convertit ce champ à une séquence d'un ou plusieurs chiffres décimaux, éventuellement précédée par un signe moins (–), pour représenter la quantité et stocke le résultat dans l'objet _Valde string_type .Il retourne un itérateur qui indique le premier élément au delà de le champ d'entrée monétaire.Sinon, la fonction signale une séquence vide dans _Val et définit ios_base::failbit dans _State.Elle retourne un itérateur qui indique le premier élément au delà de n'importe quel préfixe d'un champ d'entrée monétaire valide.Dans les deux cas, si la valeur de retour égale _Last, la fonction définit ios_base::eofbit dans _State.

La deuxième fonction membre virtuelle protégée se comporte de la même manière que le premier, sauf en cas de réussite il convertit la séquence éventuellement signée de chiffres à une valeur de type long double et stocke cette valeur dans _Val.

Le format d'un champ d'entrée monétaire est déterminé par facette de paramètres régionauxfac retourné par l'appel efficace use_facet <moneypunct<CharType, international>> (iosbase.getloc).

Plus précisément :

  • fac.negative_format détermine l'ordre dans lequel les composants du champ se produisent.

  • fac.curr_symbol détermine la séquence d'éléments qui constitue un symbole monétaire.

  • fac.positive_sign détermine la séquence d'éléments qui constitue un signe positif.

  • fac.negative_sign détermine la séquence d'éléments qui constitue un signe négatif.

  • fac.regroupement détermine comment les chiffres sont regroupés à gauche d'une virgule décimale.

  • fac.thousands_sep détermine l'élément qui sépare les groupes de chiffres à gauche d'une virgule décimale.

  • fac.decimal_point détermine l'élément qui sépare les chiffres entiers des chiffres de fraction.

  • fac.frac_digits détermine le nombre de chiffres de fraction importante à droite d'une virgule décimale.En analysant un montant monétaire avec plus de chiffres de fraction que sont appelés en frac_digits, do_get cesse d'analyser après avoir consommé au plus de caractères d' frac_digits .

Si la chaîne de signe (fac.negative_sign ou fac.positive_sign) a plusieurs éléments, seul le premier élément est mis en correspondance où l'élément égal à money_base::sign apparaît dans le modèle de format (fac.neg_format).Tous les éléments restants sont appariés à la fin de le champ d'entrée monétaire.Si ni l'une ni l'autre de chaîne a un premier élément qui correspond à l'élément dans le champ d'entrée monétaire, la chaîne de signe est prise comme vide et le signe est positif.

Si iosbase.balises etshowbase est différent de zéro, la chaîne fac.curr_symbol doit correspondre à l'élément égal à money_base::symbol apparaît dans le modèle de format.Sinon, si money_base::symbol se produit à la fin de le modèle de format, et si élément de la chaîne de signe ne reste pas de correspondance, le symbole monétaire n'est pas mis en correspondance.Sinon, le symbole monétaire est éventuellement correspondance.

Si aucune instances de fac.thousands_sep se produisent dans la partie de valeur du champ d'entrée monétaire (où l'élément égal à money_base::value apparaît dans le modèle de format), un regroupement que la contrainte est appliquée.Sinon, toutes les contraintes d'agrégation possèdent imposé par fac. estgrouping application de.Notez que la séquence résultante de chiffre représente un entier dont le facde poids faible. des chiffres décimaux d'frac_digits sont considérés comme à droite de la virgule décimale.

L'espace blanc arbitraire est mis en correspondance où l'élément égal à money_base::space apparaît dans le modèle de format, s'il apparaît autre qu'à la fin de le modèle de format.Sinon, aucun espace blanc interne n'est mis en correspondance.Un élément ch est considéré comme un espace blanc si use_facet <C<CharType> > (iosbase.getloc).est(ctype_base::space, ch) est true.

Exemple

Consultez l'exemple pour get, qui appelle do_get.

Configuration requise

en-tête : <locale>

l'espace de noms : DST

Voir aussi

Référence

money_get Class