C ++ ios_base fmtflags
Descrizione
Questo tipo viene utilizzato come parametro e / o valore di ritorno dai flag delle funzioni membro, setf e unsetf.
Dichiarazione
Di seguito è riportata la dichiarazione per ios_base :: fmtflags.
std::ios_base::fmtflags ff;
I valori passati e recuperati da queste funzioni possono essere qualsiasi combinazione valida delle seguenti costanti membro come mostrato di seguito:
campo | costante membro | effetto quando impostato |
---|---|---|
flag indipendenti | boolalpha | legge / scrive elementi bool come stringhe alfabetiche ( true e false ). |
showbase | scrivere valori integrali preceduti dal corrispondente prefisso numerico di base. | |
punto di forza | scrivere valori in virgola mobile includendo sempre il punto decimale. | |
showpos | scrivere valori numerici non negativi preceduti da un segno più (+). | |
skipws | salta gli spazi bianchi iniziali su alcune operazioni di input. | |
unitbuf | svuota l'uscita dopo ogni operazione di inserimento. | |
maiuscolo | scrivere lettere maiuscole sostituendo le lettere minuscole in determinate operazioni di inserimento. | |
base numerica (campo base) |
dec | lettura / scrittura di valori integrali utilizzando il formato base decimale. |
esadecimale | lettura / scrittura di valori integrali utilizzando il formato base esadecimale. | |
ott | leggere / scrivere valori integrali utilizzando il formato di base ottale. | |
formato float (floatfield) |
fisso | scrivere valori in virgola mobile in notazione a virgola fissa. |
scientifico | scrivere valori in virgola mobile in notazione scientifica. | |
regolazione (Adjustfield) |
interno | l'output viene riempito fino alla larghezza del campo inserendo caratteri di riempimento in un punto interno specificato. |
sinistra | l'output viene riempito fino alla larghezza del campo aggiungendo caratteri di riempimento alla fine. | |
destra | l'output viene riempito fino alla larghezza del campo inserendo caratteri di riempimento all'inizio. |
È inoltre possibile utilizzare tre costanti della maschera di bit aggiuntive costituite dalla combinazione dei valori di ciascuno dei tre gruppi di flag selettivi come mostrato di seguito.
valore della bandiera | equivalente a |
---|---|
Adjustfield | sinistra | a destra | interno |
campo base | dec | ott | esadecimale |
floatfield | scientifico | fisso |
I valori di queste costanti possono essere combinati in un unico valore fmtflags utilizzando l'operatore OR bit per bit (|).
Esempio
Nell'esempio seguente viene mostrato per 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;
}
Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:
0x64
0x64
0x64
0x64
0x64