num_put::do_put
Une fonction virtuelle appelée pour convertir un nombre en une séquence de CharTypes qui représente le nombre est mis en forme pour les paramètres régionaux donnés.
virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
bool _Val
) const;
virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
long _Val
) const;
virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
unsigned long _Val
) const;
virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
double _Val
) const;
virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
long double _Val
) const;
virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
const void * _Val
) const;
virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
const long long _Val
) const; virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
const unsigned long long _Val
) const;
Paramètres
_Next
Un itérateur adressant le premier élément de la chaîne insérée._Iosbase
A spécifié le flux de données qui contient des paramètres régionaux avec une facette de numpunct utilisée pour ponctuer la sortie et les indicateurs pour mettre en forme la sortie._Fill
Un caractère utilisé pour l'espacement._Val
Le ou le type de valeur booléenne qui doit être sortie.
Valeur de retour
Un itérateur de sortie les adresses que la position une au delà de le dernier élément est produites.
Notes
La première fonction membre virtuelle protégée génère les éléments séquentiels en commençant à _Next à produire un champ entier de sortie de la valeur d' _Val.La fonction retourne un itérateur qui indique l'emplacement pour insérer un élément au delà de le champ entier généré de sortie.
Le champ entier de sortie est généré par les mêmes règles utilisées par les fonctions d'impression pour générer une série d'éléments d' char dans un fichier.Chacun de ces éléments de caractère est supposé pour mapper à un élément équivalent de type CharType par un simple, mappage univoque.Où une fonction d'impression complète avec un champ ou des espaces ou le chiffre 0, toutefois, do_put utilise à la place fill.La spécification de conversion équivalente d'impression est déterminée comme suit :
Si iosbase.balises et == ios_base::Octd' ios_base::basefield , la spécification de conversion est lo.
Si iosbase.flags et == ios_base::hexad' ios_base::basefield , la spécification de conversion est lx.
Sinon, la spécification de conversion est ld.
Si iosbase.largeur est différent de zéro, une largeur du champ de cette valeur est ajouté.La fonction appelle ensuite iosbase.largeur(0) pour réinitialiser la largeur du champ à zéro.
Le remplissage se produit uniquement si le nombre minimal d'éléments N requis pour spécifier le champ de résultat est moins qu' iosbase.largeur.Une telle remplissage se compose d'une séquence de N – copies de largeur de fill.Compléter ensuite se produit comme suit :
Si iosbase.flags et == ios_base::gauched' ios_base::adjustfield , la balise ###-est ajouté.(La marge intérieure se produit après que le texte généré.)
Si iosbase.flags et == ios_base::interned' ios_base::adjustfield , la balise 0 est ajouté.(Pour un champ numérique de sortie, compléter se produit lorsque la protection de fonctions d'impression avec 0.)
Sinon, aucun indicateur supplémentaire n'est ajoutée.(La marge intérieure se produit avant que la séquence générée.)
Finally :
Si iosbase.flags et ios_base::showpos est différent de zéro, la balise + est ajouté selon la spécification de conversion.
Si iosbase.flags et ios_base::showbase est différent de zéro, la balise # est ajouté selon la spécification de conversion.
Le format d'un champ entier de sortie est plus de déterminé par facette de paramètres régionauxfac retourné par l'appel use_facet <numpunct<Elem> (iosbase.getloc).Plus précisément :
fac.regroupement détermine comment les chiffres sont regroupés à gauche d'une virgule décimale
fac.thousands_sep détermine la séquence qui sépare les groupes de chiffres à gauche d'une virgule décimale
Si aucune contrainte de regroupement n'est appliquée par fac.grouping (premier élément a la valeur CHAR_MAX), aucune instances de fac.thousands_sep sont générés dans le champ sortie.Sinon, les délimiteurs sont insérés après la conversion d'impression se produise.
La deuxième fonction membre virtuelle protégée :
virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
CharType _Fill, unsigned long _Val) const;
se comporte de la même manière que le premier, mais il remplace une spécification de conversion de ld par lu.
La troisième fonction membre virtuelle protégée :
virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
CharType _Fill, double _Val) const;
se comporte de la même manière que le premier, mais il génère un champ à virgule flottante de sortie de la valeur de val.fac.decimal_point détermine la séquence qui sépare les chiffres entiers des chiffres de fraction.La spécification de conversion équivalente d'impression est déterminée comme suit :
Si iosbase.flags et == ios_base::fixed' ios_base::floatfield , la spécification de conversion est lf.
Si iosbase.flags et == ios_base::scientifiqued' ios_base::floatfield , la spécification de conversion est le.Si iosbase.flags et ios_base::majuscules est différent de zéro, e est remplacé par l'E.
Sinon, la spécification de conversion est lg.Si iosbase.flags et ios_base::uppercase est différent de zéro, g est remplacé par G.
Si iosbase.flags et ios_base::fixed est différent de zéro ou si iosbase.précision supérieur à zéro, une précision avec la valeur iosbase.precision est ajouté selon la spécification de conversion.Toute marge intérieure se comporte de la même manière que pour un champ entier de sortie.Le caractère de remplissage est fill.Finally :
Si iosbase.flags et ios_base::showpos est différent de zéro, la balise + est ajouté selon la spécification de conversion.
Si iosbase.flags et ios_base::showpoint est différent de zéro, la balise # est ajouté selon la spécification de conversion.
La quatrième fonction membre virtuelle protégée :
virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
CharType _Fill, long double _Val) const;
se comporte la même chose le tiers, mais que le qualificateur l dans la spécification de conversion est remplacé par L.
La cinquième fonction membre virtuelle protégée :
virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
CharType _Fill, const void *_Val) const;
se comporte la même chose le premier, sauf que la spécification de conversion est p**,** plus n'importe quel qualificateur nécessaire pour spécifier la marge intérieure.
La sixième fonction membre virtuelle protégée :
virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
CharType _Fill, bool _Val) const;
se comporte de la même manière que le premier, mais il génère un champ booléen de sortie d' _Val.
Un champ booléen de sortie prend une des deux formes.Si iosbase.flags et ios_base::boolalpha est false, retourne do_put(_Next, _Iosbase, _Fill, (long)_Val) de fonction membre, lequel produit en général une séquence générée de 0 (pour false) ou 1 (pour true).Sinon, la séquence générée est l'un ou l'autre de fac.falsename) (pour false), ou fac.truename (pour true).
Septième la fonction membre virtuelle protégée :
virtual iter_type do_put(iter_type next, ios_base& iosbase,
Elem fill, long long val) const;
se comporte de la même manière que le premier, mais il remplace une spécification de conversion de ld par lld.
Huitième la fonction membre virtuelle protégée :
virtual iter_type do_put(iter_type next, ios_base& iosbase,
Elem fill, 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' ldpar llu.
Exemple
Consultez l'exemple pour mettez, qui appelle do_put.
Configuration requise
en-tête : <locale>
l'espace de noms : DST