Namespaces
Variants

std::ios_base:: iostate

From cppreference.net
typedef /*implementation defined*/ iostate ;
static constexpr iostate goodbit = 0 ;
static constexpr iostate badbit = /* implementation defined */

static constexpr iostate failbit = /* implementation defined */

static constexpr iostate eofbit = /* implementation defined */

Especifica los indicadores de estado del flujo. Es un BitmaskType , las siguientes constantes están definidas:

Constante Explicación
goodbit sin error
badbit error de flujo irrecuperable
failbit operación de entrada/salida fallida (error de formato o extracción)
eofbit la secuencia de entrada asociada ha alcanzado el fin de archivo

Contenidos

El eofbit

El eofbit se establece por las siguientes funciones de la biblioteca estándar:

  • La función de entrada de cadena std::getline si se completa al alcanzar el final del flujo, en lugar de alcanzar el carácter terminador especificado.
  • Las sobrecargas de entrada numérica de basic_istream::operator>> si se encontró el final del flujo mientras se leía el siguiente carácter, en la Etapa 2 del procesamiento de num_get::get . Dependiendo del estado de análisis, failbit puede o no establecerse al mismo tiempo: por ejemplo, int n ; istringstream buf ( "1" ) ; buf >> n ; establece eofbit , pero no failbit : el entero 1 se analizó y almacenó exitosamente en n . Por otro lado, bool b ; istringstream buf ( "tr" ) ; buf >> boolalpha >> b ; establece tanto eofbit como failbit : no había suficientes caracteres para completar el análisis del booleano true .
  • Las sobrecargas de extracción de caracteres de operator>> std::basic_istream , si se alcanza el final del flujo antes del límite (si existe) en el número de caracteres a extraer.
  • El manipulador de E/S std::get_time y cualquiera de las funciones de análisis de std::time_get : time_get::get , time_get::get_time , time_get::get_date , etc., si se alcanza el final del flujo antes de procesar el último carácter necesario para analizar el valor de fecha/hora esperado.
  • El manipulador de E/S std::get_money y la función money_get::get , si se alcanza el final del flujo antes de procesar el último carácter necesario para analizar el valor monetario esperado.
  • El constructor de basic_istream::sentry , ejecutado al comienzo de cada función de entrada formateada: a menos que el bit skipws esté desactivado (por ejemplo, emitiendo std::noskipws ), sentry lee y descarta los caracteres de espacio en blanco iniciales. Si se alcanza el final del flujo de entrada durante esta operación, se establecen tanto eofbit como failbit , y no se realiza ninguna entrada.
  • El manipulador de E/S std::ws , si alcanza el final del flujo mientras consume espacios en blanco (pero, a diferencia del sentry de entrada formateada, no establece failbit en este caso).
  • Las funciones de entrada no formateadas basic_istream::read , basic_istream::get , basic_istream::peek , basic_istream::readsome , basic_istream::ignore , y basic_istream::getline , al alcanzar el final del flujo.
  • La función de descarte de entrada basic_istream::ignore , cuando alcanza el final del flujo antes de alcanzar el carácter delimitador especificado.
  • La función de entrada inmediata basic_istream::readsome , si basic_streambuf::in_avail devuelve - 1 .

Las siguientes funciones borran eofbit como efecto secundario:

Tenga en cuenta que en casi todas las situaciones, si eofbit está activado, el failbit también lo está.

El failbit

El failbit se establece por las siguientes funciones de la biblioteca estándar:

El badbit

El badbit se establece por las siguientes funciones de la biblioteca estándar:

Ejemplo

Véase también

La siguiente tabla muestra el valor de basic_ios accessors ( good() , fail() , etc.) para todas las combinaciones posibles de ios_base::iostate flags:

ios_base::iostate banderas basic_ios accesores
eofbit failbit badbit good() fail() bad() eof() operator bool operator!
falso falso falso verdadero falso falso falso verdadero falso
falso falso verdadero falso verdadero verdadero falso falso verdadero
falso verdadero falso falso verdadero falso falso falso verdadero
falso verdadero verdadero falso verdadero verdadero falso falso verdadero
verdadero falso falso falso falso falso verdadero verdadero falso
true false true false true true true false true
verdadero verdadero falso falso verdadero falso verdadero falso verdadero
verdadero verdadero verdadero falso verdadero verdadero verdadero falso verdadero
devuelve los indicadores de estado
(función miembro pública de std::basic_ios<CharT,Traits> )
establece los indicadores de estado
(función miembro pública de std::basic_ios<CharT,Traits> )
modifica los indicadores de estado
(función miembro pública de std::basic_ios<CharT,Traits> )