Estado de un flujo

La clase ios_base es la clase base para todas las clases que definen flujos de E/S. Por lo tanto, sus métodos y atributos serán heredados por sus clases derivadas, lo que permite que un objeto de alguna de estas clases puede invocar a cualquiera de los métodos heredados públicamente.

 Cada flujo tiene un estado asociado con él (dado por un conjunto de bits), que puede ser analizado para manipular cualquier error que pueda ocurrir durante la operación de E/S. Los métodos para examinar el estado de un flujo están definidos en la plantilla basic_ios derivada de ios_base de la forma siguiente:

estado_flujo_1

Donde:

ios_good

ios_eof

ios_fail

io_bad

Las constantes mencionadas en los párrafod anteriores, utilizadas para modificar el estado de un flujo, están definidas de la forma siguiente:

estado_flujo_2

Donde:

ios_goodbit

ios_badbit

ios_eofbit

ios_failbit

Supongamos por  ejemplo, qu el siguiente código intenta leer un valor int y le introducimos un tipo de valor diferente para el valor de x, mostraría el mensaje que hemos especificado:

estado_flujo_3

estado_flujo_4

Antes de realizar la próxima operación de entrada hay que poner todos los indicadores de error a cero, de lo contrario no será posible volver a realizar la operación ignorándose el código. Para eso utilizaremos el método clear de la clase ios sin argumentos. Este argumento está definido de la siguiente manera:

clear_1

clear_2

atras2

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.