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 ( truee 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
