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