Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/05/2011, 17:44
ssaammuu
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años, 7 meses
Puntos: 24
Respuesta: Error de redundancia con while

El error se debe a que al pulsar la tecla enter, se añade otro caracter (caracter nulo, \n) al buffer. Por lo que mira lo que pasa con el buffer.
[buffer= ]
-pedimos que se inserte letra
<usuario inserta 'b' y pulsa enter>
[buffer= b, \n]
Al haber 2 caracteres en el buffer cada vez que introduces una letra, el bucle while se ejecuta dos veces. La solución, vaciar el buffer antes de pedir letra.

Código C:
Ver original
  1. #include <windows.h>
  2. #include <stdio.h>
  3. #include <mmsystem.h>
  4. #include <math.h>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7.  
  8. int main()
  9. {
  10. char letra;
  11.  
  12. printf("Pulse una tecla para comenzar a jugar\n");
  13. printf("El juego termina cuando apriete la tecla 'a'.\n");
  14. scanf("%c",&letra);//Crea el espacio para poder asignar la tecla
  15.  
  16.  
  17. while(letra!='a')
  18. {printf("Bienvenido a esta ..., por favor, vuelva a intentarlo.\n");
  19. fflush(stdin);
  20. scanf("%c", &letra);}
  21. printf("Fin del juego\n");
  22. system("PAUSE");
  23.  
  24. return 0;
  25. }
__________________
Foros Desarrollo de Juegos