[C con Clase] Detectar errores con scanf

David Romero Escalona solidsnakemgs9 en hotmail.com
Dom Mar 4 17:11:14 CET 2007


ok, muchas thankius.
Ahora sé que si quiero descartar todo el contenido que quede en el buffer de 
la entrada estándar tengo que usar la sentencia:
flush (stdin);
Y en general para hacerlo con cualquier tipo FILE apuntado por file:
fflush (file);

:)


>From: Programante <programante en gmail.com>
>Reply-To: Lista de correo sobre C y C++ <cconclase en listas.conclase.net>
>To: Lista de correo sobre C y C++ <cconclase en listas.conclase.net>
>Subject: Re: [C con Clase] Detectar errores con scanf
>Date: Sun, 04 Mar 2007 16:17:12 +0100
>
>David Romero Escalona escribió:
> > El problema es que si introduzco algún valor erróneo, todas las veces 
>que se
> > llama a scanf depués no me dejan introducir otro valor sino que scanf
> > directamente no lee nada.
> > ¿alguien sabe porqué ocurre ésto?
> >
>scanf() lee los datos de un buffer de entrada. En el momento en que lo
>que hay no se corresponde con lo que intenta leer, falla. Pero descarta
>los datos del buffer no leidos. Puede que si a continuación le pidieras
>leer una cadena funcionase.
>Lo que debes hacer es vaciar el buffer de entrada antes de pedirle leer
>de nuevo. Esto lo haces con fflush(stdin) en Windows y
>  fpurge(stdin) en Linux (incluye <stdio_ext.h>).
>
>
>_______________________________________________
>Lista de correo Cconclase Cconclase en listas.conclase.net
>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ

_________________________________________________________________
Horóscopo, tarot, numerología... Escucha lo que te dicen los astros. 
http://astrocentro.msn.es/





Más información sobre la lista de distribución Cconclase