Biblioteca C ++ IOS - bom

Descrição

É usado para verificar se o estado do fluxo é bom.

Declaração

A seguir está a declaração para a função ios :: good ().

bool good() const;

Parâmetros

Nenhum

Valor de retorno

Verdadeiro se nenhum dos sinalizadores de estado do fluxo estiver definido.

False se qualquer um dos sinalizadores de estado do stream estiver definido (badbit, eofbit ou failbit).

Exceções

Strong guarantee - se uma exceção é lançada, não há mudanças no fluxo.

Data Races

Acessa o objeto de fluxo.

O acesso simultâneo ao mesmo objeto de fluxo pode causar disputas de dados.

Exemplo

No exemplo abaixo, explica sobre 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;
}

Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -

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