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 ( true et 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