Libreria IOS C ++ - Setf

Descrizione

Viene utilizzato per impostare flag di formato specifici. I flag di formato di uno stream influenzano il modo in cui i dati vengono interpretati in determinate funzioni di input e come vengono scritti da determinate funzioni di output. Vedere ios_base :: fmtflags per i possibili valori degli argomenti di questa funzione.

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione ios_base :: setf.

set (1)	fmtflags setf (fmtflags fmtfl);
mask (2) fmtflags setf (fmtflags fmtfl, fmtflags mask);

La prima forma (1) imposta i flag di formato del flusso i cui bit sono impostati in fmtfl, lasciando invariato il resto, come se fosse una chiamata a flags (fmtfl | flags ()).

La seconda forma (2) imposta i flag di formato del flusso i cui bit sono impostati sia in fmtfl che in mask, e cancella i flag di formato i cui bit sono impostati in mask ma non in fmtfl, come se una chiamata a flags ((fmtfl & mask) | (flags () e ~ maschera)).

Parametri

fmtfl- Flag di formato da impostare. Se viene utilizzata la seconda sintassi, solo i bit impostati sia in fmtfl che in mask vengono impostati nei flag di formato del flusso; i flag impostati in mask ma non in fmtfl vengono cancellati.

mask - Maschera contenente i flag da modificare.

Valore di ritorno

I flag di formato selezionati nel flusso prima della chiamata.

Eccezioni

Basic guarantee - se viene generata un'eccezione, il flusso è in uno stato valido.

Gare di dati

Modifica l'oggetto stream. L'accesso simultaneo allo stesso oggetto flusso può causare gare di dati.

Esempio

Nell'esempio seguente viene illustrata la funzione ios_base :: setf.

#include <iostream>     

int main () {
   std::cout.setf ( std::ios::hex, std::ios::basefield );  
   std::cout.setf ( std::ios::showbase );                  
   std::cout << 100 << '\n';
   std::cout.unsetf ( std::ios::showbase );                
   std::cout << 100 << '\n';
   return 0;
}

Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:

0x64
64