std::ios_base:: iostate
|
typedef
/*implementation defined*/
iostate
;
|
||
|
static
constexpr
iostate goodbit
=
0
;
|
||
|
static
constexpr
iostate badbit
=
/* implementation defined */
static
constexpr
iostate failbit
=
/* 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,
failbitpuede o no establecerse al mismo tiempo: por ejemplo, int n ; istringstream buf ( "1" ) ; buf >> n ; estableceeofbit, pero nofailbit: el entero 1 se analizó y almacenó exitosamente enn. Por otro lado, bool b ; istringstream buf ( "tr" ) ; buf >> boolalpha >> b ; establece tantoeofbitcomofailbit: 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
skipwsesté 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 tantoeofbitcomofailbit, 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
failbiten 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 constructor de
basic_istream::sentry
, ejecutado al inicio de cada función de entrada, si ya está establecido
eofbitobadbiten el flujo, o si se encuentra el final del flujo mientras se consumen espacios en blanco iniciales. - El constructor de basic_ostream::sentry , ejecutado al inicio de cada función de salida, bajo condiciones definidas por la implementación.
- operator>> (std::basic_string<>) si la función no extrae ningún carácter del flujo de entrada.
- operator>> (std::complex<>) si la función no logra extraer un número complejo válido.
- Las sobrecargas de arreglo de caracteres y carácter único de operator>> si no logran extraer ningún carácter.
- La sobrecarga de streambuf de basic_istream::operator>> si el argumento streambuf es un puntero nulo o si no se insertaron caracteres en el streambuf.
- La sobrecarga de streambuf de basic_ostream::operator<< si la función no inserta ningún carácter.
- operator>> (std::bitset<>) si la función no extrae ningún carácter del flujo de entrada.
- std::getline si la función no extrae ningún carácter o si logra extraer basic_string::max_size caracteres del flujo de entrada.
- Las sobrecargas de entrada numérica, de puntero y booleana de basic_istream::operator>> (técnicamente, las sobrecargas de num_get::get que llaman), si la entrada no puede analizarse como un valor válido o si el valor analizado no cabe en el tipo de destino.
- El manipulador de entrada de tiempo std::get_time (técnicamente, time_get::get que llama), si la entrada no puede analizarse inequívocamente como un valor de tiempo según la cadena de formato dada.
- El manipulador de entrada de moneda std::get_money (técnicamente, money_get::get que llama), si la entrada no puede analizarse inequívocamente como un valor monetario según las reglas de la configuración regional.
- Los operadores de extracción de todos los RandomNumberEngine s , si se encuentra entrada incorrecta.
- Los operadores de extracción de todas las RandomNumberDistribution s , si se encuentra entrada incorrecta.
- Las funciones de entrada sin formato basic_istream::get si no logran extraer ningún carácter.
- basic_istream::getline , si no extrae ningún carácter, si llena el búfer proporcionado sin encontrar el delimitador, o si el tamaño del búfer proporcionado es menor que 1.
- basic_istream::read , si ocurre la condición de fin de archivo en el flujo de entrada antes de que se puedan extraer todos los caracteres solicitados.
- basic_istream::seekg en caso de fallo
- basic_ostream::tellp en caso de fallo
- Los constructores de std::basic_fstream , std::basic_ifstream , y std::basic_ofstream que toman un argumento de nombre de archivo, si el archivo no puede abrirse.
- basic_fstream::open , basic_ifstream::open , y basic_ofstream::open si el archivo no puede abrirse.
- basic_fstream::close , basic_ifstream::close , y basic_ofstream::close si el archivo no puede cerrarse.
El badbit
El badbit se establece por las siguientes funciones de la biblioteca estándar:
- basic_ostream::put si falla al insertar un carácter en el flujo de salida, por cualquier motivo.
- basic_ostream::write si falla al insertar un carácter en el flujo de salida, por cualquier motivo.
- Funciones de salida formateada operator<< , std::put_money , y std::put_time , si encuentran el final del flujo de salida antes de completar la salida.
-
basic_ios::init
cuando se llama para inicializar un flujo con un puntero nulo para
rdbuf(). -
basic_istream::putback
y
basic_istream::unget
cuando se llaman en un flujo con un
rdbuf()nulo. - basic_ostream::operator<< (basic_streambuf*) cuando se pasa un puntero nulo como argumento.
- basic_istream::putback y basic_istream::unget si rdbuf ( ) - > sputbackc ( ) o rdbuf ( ) - > sungetc ( ) devuelven traits :: eof ( ) .
-
basic_istream::sync
,
basic_ostream::flush
, y cada función de salida en un flujo de salida
unitbuf, si rdbuf ( ) - > pubsync ( ) devuelve - 1 . -
Cada función de E/S de flujo si se lanza una excepción por cualquier función miembro del búfer de flujo asociado (ej.
sbumpc(),xsputn(),sgetc(),overflow(), etc). - ios_base::iword y ios_base::pword en caso de fallo (ej. fallo al asignar memoria).
Ejemplo
|
Esta sección está incompleta
Razón: sin 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>
)
|