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
