num_get::do_get
Une fonction virtuelle qui est appelée aux extraits une colonne 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 dont pour lire le nombre._Last
La fin de la plage de caractères dont pour lire le nombre._Iosbase
ios_base dont les indicateurs sont utilisées par la conversion._State
L'état dans lequel le failbit (voir l'ios_base::iostate) est créé lors de l'échec._Val
Valeur qui a été lue.
Valeur de retour
L'itérateur situé après la valeur a été lu.
Notes
La première fonction membre, protégée virtuelle
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long& _Val
) const;
correspond à des éléments de séquence en commençant à _First dans la séquence [_First, _Last) jusqu'à ce qu'elle a identifié un champ d'entrée entier complet et vide. Si a réussi, elle convertit ce champ dans sa valeur équivalente au type long, et stocke le résultat dans _Val. Retourne un itérateur indiquant le premier élément au delà de le champ d'entrée numérique. Sinon, la fonction ne stocke aucune dans _Val et définit ios_base::failbit dans state. Retourne un itérateur indiquant le premier élément au delà de tout préfixe d'un champ d'entrée entier valide. Dans l'un et l'autre cas, si la valeur de retour est last, la fonction définit ios_base::eofbit dans state.
Le champ d'entrée entier est converti par les mêmes règles que celles utilisées par les fonctions d'analyse pour la correspondance et convertir un jeu d'éléments de char dans un fichier. (Ce chaque élément d'char est utilisé pour mapper à un élément équivalent du type Elem à un seul, linéaire, le mappage.) La spécification de conversion équivalente d'analyse est déterminé 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 entier est également 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 données sont regroupées à gauche de toute virgule décimale
fac.numpunct::thousands_sep() détermine la séquence qui sépare les groupes de chiffres à gauche de toute virgule décimale.
Si instance de fac.thousands_sep() ne se produit pas dans le champ d'entrée numérique, aucune contrainte d'agrégation n'est appliquée. Sinon, toutes les contraintes d'agrégation imposées par fac.grouping() sont appliquées et les séparateurs sont supprimés avant que la conversion d'analyse ne se produise.
La quatrième fonction membre est virtuelle :
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 la première, sauf qu'il remplace une spécification de conversion d'ld par lu. En cas de réussite est 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 est virtuelle :
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 la première, sauf qu'il remplace une spécification de conversion d'ld par lld. En cas de réussite est 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 est virtuelle :
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 la première, sauf qu'il remplace une spécification de conversion d'ld par llu. En cas de réussite est convertit le champ d'entrée numérique à une valeur de type unsigned long long et stocke cette valeur dans _Val.
Le septième fonction membre est virtuelle :
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 qu'elle essaie de faire correspondre un champ d'entrée à virgule flottante complet et vide. fac.numpunct::decimal_point() détermine la séquence qui sépare les données entiers de chiffres de fraction. Le spécificateur équivalent de conversion d'analyse est lf.
La huitième fonction membre est virtuelle :
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 qu'elle essaie de faire correspondre un champ d'entrée à virgule flottante complet et vide. fac.numpunct::decimal_point() détermine la séquence qui sépare les données entiers de chiffres de fraction. Le spécificateur équivalent de conversion d'analyse est lf.
Le neuvième fonction membre est virtuelle :
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 le spécificateur équivalent de conversion d'analyse est Lf.
Le neuvième fonction membre est virtuelle :
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
void *& _Val
) const;
se comporte de la même la première, mais le spécificateur équivalent de conversion d'analyse est p.
La dernière (onzième) fonction membre est virtuelle :
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 qu'elle essaie de faire correspondre un champ d'entrée booléen complet et vide. En cas de réussite est 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 l'une des deux formes suivantes. Si iosbase.flags() & ios_base::boolalpha est false, c'est ce que champ d'entrée entier, mais que la valeur convertie doit être 0 (pour false) ou 1 (pour true). Sinon, la séquence doit correspondre à fac.numpunct::falsenamepour() (false), ou fac.numpunct::truenamepour() (true).
Exemple
Consultez l'exemple de obtenir, où la fonction membre virtuelle est appelée par do_get.
Configuration requise
**En-tête :**paramètres régionaux <de >
Espace de noms : std