C ++ ios_base fmtflags

La description

Ce type est utilisé comme paramètre et / ou valeur de retour par les fonctions membres flags, setf et unsetf.

Déclaration

Voici la déclaration pour ios_base :: fmtflags.

std::ios_base::fmtflags ff;

Les valeurs transmises et récupérées par ces fonctions peuvent être n'importe quelle combinaison valide des constantes de membre suivantes, comme indiqué ci-dessous -

champ constante de membre effet une fois réglé
drapeaux indépendants boolalpha lire / écrire des éléments booléens sous forme de chaînes alphabétiques ( trueet false).
showbase écrire les valeurs intégrales précédées de leur préfixe de base numérique correspondant.
point de vue écrire des valeurs à virgule flottante comprenant toujours la virgule décimale.
showpos écrivez des valeurs numériques non négatives précédées d'un signe plus (+).
skipws ignorer les espaces de début sur certaines opérations d'entrée.
unitbuf sortie de rinçage après chaque opération d'insertion.
majuscule écrire des lettres majuscules en remplaçant les lettres minuscules dans certaines opérations d'insertion.

base numérique

(champ de base)

déc lire / écrire des valeurs intégrales en utilisant le format de base décimal.
hexadécimal lire / écrire des valeurs intégrales en utilisant le format de base hexadécimal.
oct lire / écrire des valeurs intégrales en utilisant le format de base octal.

format flottant

(floatfield)

fixé écrire des valeurs à virgule flottante en notation à virgule fixe.
scientifique écrire des valeurs à virgule flottante en notation scientifique.

ajustement

(ajuster le champ)

interne la sortie est complétée à la largeur du champ en insérant des caractères de remplissage à un point interne spécifié.
la gauche la sortie est complétée à la largeur du champ en ajoutant des caractères de remplissage à la fin.
droite la sortie est complétée à la largeur du champ en insérant des caractères de remplissage au début.

Trois constantes de masque de bits supplémentaires constituées de la combinaison des valeurs de chacun des trois groupes d'indicateurs sélectifs peuvent également être utilisées comme indiqué ci-dessous.

valeur du drapeau équivalent à
ajuster le champ gauche | droite | interne
champ de base dec | oct | hexadécimal
floatfield scientifique | fixé

Les valeurs de ces constantes peuvent être combinées en une seule valeur fmtflags à l'aide de l'opérateur binaire OR (|).

Exemple

L'exemple ci-dessous est montré pour ios_base :: fmtflags.

#include <iostream>

int main () {

   std::cout.setf (std::ios_base::hex , std::ios_base::basefield);
   std::cout.setf (std::ios_base::showbase);
   std::cout << 100 << '\n';

   std::cout.setf (std::ios::hex , std::ios::basefield);
   std::cout.setf (std::ios::showbase);
   std::cout << 100 << '\n';

   std::cout.setf (std::cout.hex , std::cout.basefield);
   std::cout.setf (std::cout.showbase);
   std::cout << 100 << '\n';

   std::ios_base::fmtflags ff;
   ff = std::cout.flags();
   ff &= ~std::cout.basefield;   
   ff |= std::cout.hex;          
   ff |= std::cout.showbase;     
   std::cout.flags(ff);
   std::cout << 100 << '\n';

   std::cout << std::hex << std::showbase << 100 << '\n';

   return 0;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

0x64
0x64
0x64
0x64
0x64