Descartar caracteres del flujo de entrada

Los caracteres que no se extraen del bufer de entrada, por ejemplo, porque hubo un error al teclear algún carácter, Se pueden limpiar utilizando el método ignore de la clase istream. Su sintaxis esta definida así:

descartar_1

Donde:

descartar_2

La ejecución finaliza cuando ocurre lo siguiente:

  • Se hayan extraído n caracteres, si n != numeric_limits<int>::max().

    descartar_3

  • Se detecte la marca de final del fichero (eof, valor de delim por omisión).
  • El carácter extraído coincida con el carácter indicado por .

El siguiente listado implementa una función para leer un dato float de forma segura; el dato se solicitará indefinidamente mientras el dato introducido no sea el correcto. Además muestra cómo utilizar los métodos clear e ignore, además de otros. Escribiremos la definición de la función en utils.cpp y su declaración en utils.h así permitimos la reutilización en otros programas.

 

descartar_4

La función anterior la podemos utilizar así. Creamos un nuevo proyecto llamado utils.cpp:

descarta_5

atras2

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s