[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]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."