getchar y enter

Xisec
07 de Abril del 2010
Buenas, la cosa es que estoy confuso con la funci贸n getchar():
hice un programa para probar:
#include <stdio.h>

int main()
{
char letra ;

while(letra != 'z'){

letra = getchar();
if(letra == 'z') printf("Letra introducida: z, cerrando programan");
else printf("Letra introducida: %cn", letra);
}

return 0;
}

y al darle enter para introducir una letra en el momento del getchar, me introducia la letra propia letra enter.

La chapucera soluci贸n fue esta:

#include <stdio.h>

int main()
{
char letra ;

while(letra != 'z'){

letra = getchar();
getchar();
if(letra == 'z') printf("Letra introducida: z, cerrando programan");
else printf("Letra introducida: %cn", letra);
}

return 0;
}

poner un getchar mas para que el primera me capture la tecleada, y el 2 la tecla enter.

Cual es la soluci贸n "bien resuelta", que no con ese apa帽o xD

trasgu
07 de Abril del 2010
-Prueba a insertar esta l铆nea justo antes del getchar:
fflush(stdin);//Pone a punto la funci贸n getchar liberando la memoria

Xisec
07 de Abril del 2010
Mmm no, no me funciona, ser谩 porque al estar antes del getchar limpia la memoria antes de "ensuciarla". xD