Partager via


num_get::do_get

Une fonction virtuelle appelée aux extraits un numérique ou une valeur booléenne d'une séquence de caractères.

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;

Paramètres

  • _First
    Le début de la plage de caractères duquel lire le nombre.

  • _Last
    La fin de la plage de caractères duquel lire le nombre.

  • _Iosbase
    ios_base dont les balises sont utilisées par la conversion.

  • _State
    Le rapport auquel le failbit (voir l' ios_base::iostate) est ajouté en cas de échec.

  • _Val
    Valeur qui a été lue.

Valeur de retour

L'itérateur après que la valeur a été lue.

Notes

La première fonction membre virtuelle protégée,

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

long& _Val

) const;

correspond aux éléments séquentiels en commençant à _First dans la séquence [_First,_Last) jusqu'à ce qu'elle soit identifié un champ d'entrée entière complet et non vide.Si réussie, elle convertit ce champ à sa valeur équivalente comme type long, et stocke le résultat dans _Val.Elle retourne un itérateur qui indique le premier élément au delà de le champ d'entrée numérique.Sinon, la fonction ne stocke aucun effet 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 entière valide.Dans les deux cas, si la valeur de retour égale last, la fonction définit ios_base::eofbit dans state.

Le champ d'entrée entière est converti par les mêmes règles utilisées par les fonctions d'analyse pour la mise en correspondance et convertir une série d'éléments d' char d'un fichier.(Chacun de ces éléments d' char est supposé pour mapper à un élément équivalent de type Elem par un simple, linéaire, le mappage.) La spécification de conversion équivalente d'analyse est déterminée comme suit :

Si iosbase.ios_base::flags() & ios_base::basefield == ios_base::Oct, la spécification de conversion est lo.

Si iosbase.flags() & ios_base::basefield == ios_base::hex, la spécification de conversion est lx.

Si iosbase.flags() & ios_base::basefield == 0, la spécification de conversion est li.

Sinon, la spécification de conversion est ld.

Le format d'un champ d'entrée entière est plus de déterminé par facette de paramètres régionauxfac retourné par l'appel use_facet<numpunct<Elem>(iosbase.ios_base::getloc()).Plus précisément :

fac.numpunct::grouping() détermine comment les chiffres sont regroupés à gauche d'une virgule décimale

fac.numpunct::thousands_sep() détermine la séquence qui sépare les groupes de chiffres à gauche d'une virgule décimale.

Si instance d' fac.thousands_sep() ne se produit pas dans le champ d'entrée numérique, aucune contrainte de regroupement n'est appliquée.Sinon, toutes les contraintes de regroupement imposées par fac.grouping() sont appliquées par les délimiteurs et sont supprimés avant que la conversion d'analyse se produit.

La quatrième fonction membre virtuelle protégée :

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

unsigned long& _Val

) const;

se comporte de la même manière que le premier, mais il remplace une spécification de conversion d' ld par lu.En cas de réussite il convertit le champ d'entrée numérique à une valeur de type unsigned long et stocke cette valeur dans _Val.

La cinquième fonction membre virtuelle protégée :

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

long long& _Val

) const;

se comporte de la même manière que le premier, mais il remplace une spécification de conversion d' ld par lld.En cas de réussite il convertit le champ d'entrée numérique à une valeur de type long long et stocke cette valeur dans _Val.

La sixième fonction membre virtuelle protégée :

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

unsigned long long& _Val

) const;

se comporte de la même manière que le premier, mais il remplace une spécification de conversion d' ld par llu.En cas de réussite il convertit le champ d'entrée numérique à une valeur de type unsigned long long et stocke cette valeur dans _Val.

Septième la fonction membre virtuelle protégée :

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

float& _Val

) const;

se comporte de la même manière que le premier, mais il tente de correspondre un champ d'entrée à virgule flottante complet et non vide.fac.numpunct::decimal_point() détermine la séquence qui sépare les chiffres entiers des chiffres de fraction.Le spécificateur équivalent de conversion d'analyse est lf.

Huitième la fonction membre virtuelle protégée :

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

double& _Val

) const;

se comporte de la même manière que le premier, mais il tente de correspondre un champ d'entrée à virgule flottante complet et non vide.fac.numpunct::decimal_point() détermine la séquence qui sépare les chiffres entiers des chiffres de fraction.Le spécificateur équivalent de conversion d'analyse est lf.

La neuvième fonction membre virtuelle protégée :

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

long double& _Val

) const;

se comporte de la même manière que le huitième, mais que le spécificateur équivalent de conversion d'analyse est Lf.

La neuvième fonction membre virtuelle protégée :

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

void *& _Val

) const;

se comporte la même chose le premier, mais que le spécificateur équivalent de conversion d'analyse est p.

La dernière (onzième) fonction membre virtuelle protégée :

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

bool& _Val

) const;

se comporte de la même manière que le premier, mais il tente de correspondre un champ d'entrée booléen complet et non vide.En cas de réussite il convertit le champ d'entrée booléen à une valeur de type bool et stocke cette valeur dans _Val.

Un champ d'entrée booléen prend une des deux formes.Si iosbase.flags() & ios_base::boolalpha a la valeur false, c'est ce que champ d'entrée entière, sauf que la valeur convertie doit être de 0 (false) ou 1 (pour true).Sinon, la séquence doit correspondre fac.numpunct::falsename() (pour false), ou fac.numpunct::truenamepour() (true).

Exemple

Consultez l'exemple pour get, où la fonction membre virtuelle est appelée par do_get.

Configuration requise

en-tête : <locale>

l'espace de noms : DST

Voir aussi

Référence

num_get Class