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