On Mon, Jul 01, 2002 at 10:32:14PM +0200, Esteban Garcia Cuesta wrote:
> Hola, 
>   Estoy usando la funcion de fflush (stdin)para limpiar el buffer de
> entrada, pero parece que no hace nada. Lo tengo puesto justo antes de un
> getchar() y este me coge basura, sin quedarse a la espera por teclado que
> es lo que deberia hacer si el buffer esta vacio (ahi esta la utilidad de
> fflush).
>   Sabeis porque puede ser? Hace tiempo que no programo en C pero no
> recuerdo que esto me pasara.

He encontrado esto buscando en devhelp:

Function: int fflush (FILE *stream)
This function causes any buffered output  on stream to be delivered to
the file.

No dice nada de que vac�e el buffer. Si lo que quieres es vaciarlo
creo que tendr�s que leerlo hasta que no haya nada que leer. En un
men� que le�a n�meros hice lo siguiente para asegurarme de que siempre
le�a un n�mero ("%d") y no otra cosa:

    char trash[100];
        ...
    printf ("\n Opci�n: ");
    while (scanf ("%d", &op) != 1) {
      scanf ("%99s", trash);
      printf ("\n La opci�n %s es incorrecta.", trash);
      printf ("\n Opci�n: ");
    } /* while */

Aprovecho que scanf()  devuelve el n�mero de variables  que ha logrado
leer,  y si  ese n�mero  no es  el esperado  leo el  buffer hasta  que
encuentro un n�mero. 

Creo que si lo que quieres es leer el buffer podr�as hacer lo siguiente:

trash char[4096];
...
scanf ("%4095s", trash);
getchar ();

Saludos :-)
-- 

        --==--   --==--   Miguel �ngel Vilela   --==--   --==--       

  a.k.a  miguev  at  fmat.ull.es,  GULiC,  Barrapunto &  IRC-Hispano  
  GULiC - Grupo de Usuarios Linux de Canarias - http://www.gulic.org  
  Facultad de Matem�ticas, Universidad La Laguna --- www.fmat.ull.es  
  Public GPG key at http://search.keyserver.net (search for: miguev)  
  Linux Reg. User #184518 - Debian GNU/Linux SID - kernel 2.4.18-xfs 
  Linux Reg. Machines:  #81674,  #81677,  #105478,  #118020, #118022 
  -- Linux Driver Petition #73209 --- No ePatents Petition #80354 --  
 
 Rules for Academic Deans:
        (1)  HIDE!!!!
        (2)  If they find you, LIE!!!!
                -- Father Damian C. Fandal 

Attachment: pgpJE0vbcJv1N.pgp
Description: PGP signature

Responder a