Libreria C ++ IOS - buona

Descrizione

Viene utilizzato per verificare se lo stato del flusso è buono.

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione ios :: good ().

bool good() const;

Parametri

nessuna

Valore di ritorno

Vero se nessuno dei flag di stato del flusso è impostato.

Falso se è impostato uno qualsiasi dei flag di stato del flusso (badbit, eofbit o failbit).

Eccezioni

Strong guarantee - se viene generata un'eccezione, non ci sono modifiche nel flusso.

Gare di dati

Accede all'oggetto stream.

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

Esempio

Nell'esempio seguente viene spiegato su ios :: good ().

#include <iostream>     
#include <sstream>      

void print_state (const std::ios& stream) {
   std::cout << " good()=" << stream.good();
   std::cout << " eof()=" << stream.eof();
   std::cout << " fail()=" << stream.fail();
   std::cout << " bad()=" << stream.bad();
}

int main () {
   std::stringstream stream;

   stream.clear (stream.goodbit);
   std::cout << "goodbit:"; print_state(stream); std::cout << '\n';

   stream.clear (stream.eofbit);
   std::cout << " eofbit:"; print_state(stream); std::cout << '\n';

   stream.clear (stream.failbit);
   std::cout << "failbit:"; print_state(stream); std::cout << '\n';

   stream.clear (stream.badbit);
   std::cout << " badbit:"; print_state(stream); std::cout << '\n';

   return 0;
}

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

goodbit: good()=1 eof()=0 fail()=0 bad()=0
 eofbit: good()=0 eof()=1 fail()=0 bad()=0
failbit: good()=0 eof()=0 fail()=1 bad()=0
 badbit: good()=0 eof()=0 fail()=1 bad()=1