Bibliothèque C ++ IOS - bon

La description

Il est utilisé pour vérifier si l'état du flux est bon.

Déclaration

Voici la déclaration de la fonction ios :: good ().

bool good() const;

Paramètres

aucun

Valeur de retour

Vrai si aucun des indicateurs d'état du flux n'est défini.

False si l'un des indicateurs d'état du flux est défini (badbit, eofbit ou failbit).

Exceptions

Strong guarantee - si une exception est levée, il n'y a pas de changement dans le flux.

Courses de données

Accède à l'objet de flux.

L'accès simultané au même objet de flux peut provoquer des courses de données.

Exemple

L'exemple ci-dessous explique à propos de 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;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

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