[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

Re: programa en c.



El error en tu programa original se debe a que scanf y gets no limpian
el buffer. Tú tienes que hacerlo haciendo fflush(stdin)


davidgn en servidor unam mx wrote:
> 
> >
> 
> Primero que nada, perdon por quotear todo el programa, pero es para comartir
> la experiencia.
> Segundo, es extraño, pero hubiera jurado que ya habia probado con %*c, que
> fue la que me jalo al final =)
> 
> gracias.
> 
> Tercero, aun no entiendo que es lo que pasa, incluso hice tambien este
> pequeño programin para probar getchar:
> 
> main()
> {
> char c;
> do {
>     printf("%c\n",c);
> }while(getchar()!='q');
> }
> 
> bueno, pues getchar espera a que le meta cosas hasta que le meta enter. le
> meti
> 
> hola,123q674"Enter"
> 
> lo que me devolvio fue:
> 1
> 2
> 3
> y salio del programa.
> 
> Alguien puede esplicarme mas o menos como funciona la entrada/salida? Y que
> pasa con le buffer del teclado y todo ese rollo?
> Eso es algo que ningun maestro en ningun curso me han enseñado, y que no he
> visto en ningun libro ni en ninguna de las pocas manpages que he leido.
> 
> GRACIAS!!!!!!!!!!!!!!!!!!!!! =)
> 
> >
> > > Alguien puede decirme que esta mal con este programa?
> > > nomas no hace lo que deberia hacer.
> > >
> > > main()
> > > {
> > > int a,b,c,d;
> > >  char m;
> > >  do {
> > >    printf("Introduce los valores de A, B, C y D\n");
> > >    scanf("%d%d%d%d",&a,&b,&c,&d);
> > >    printf("El(los) menor(es) numero(s) es(son): ");
> > >    menor_de(a,b,c,d);
> > >    printf("¿Deseas observar mas ejemplos? (s/n): ");
> > >  }while(toupper(getchar()) =='S');
> > > }
> > >
> > >
> > > No se espera a que yo le escriba 's', y en su lugar, haciendo pruebas,
> > > vi que getchar recibe un codigo ascii 10, o igual al ultimo que haya
> > > metido con scanf despues del ulimo numero. osea, si meto
> > >
> > > 1 2 3 4"espacio""enter" esa cosa recibe el ascii de espacio...
> > >
> > > lo puedo solucionar con un getchar despues del scanf, pero eso es un
> > > desperdicio...
> > >
> > > alguien me puede ayudar?
> > >

-- 
ISC. Gerardo Santana Gómez Garrido
CONALEP Chiapas
ICQ: 4291424
"After a long road, the dream of Unix and the promise of
Microsoft has become the reality of Linux."



[Hilos de Discusión] [Fecha] [Tema] [Autor]