[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."