[ Foro de C ]

Error extraño en scanf

15-May-2015 21:45
Santiago Pereira
1 Respuestas

Hola, soy nuevo en el foro .-. primero que nada muchas gracias por ver esto, verán, estudio apenas hace 2 meses lenguaje C en una carrera universitaria y haciendo un programa simple que pide el ingreso de 3 caracteres, casualmente me saltea un scanf a la hora de compilar, osea, yo hago un muestro y una entrada por cada uno de los 3 caracteres:


char letra1;
char letra2;
char letra3;

printf("Ingrese la primera letra: ");
scanf("%c", &letra1);
printf("Ingrese la segunda letra: ");
scanf("%c", &letra2);
printf("Ingrese la tercera letra: ");
scanf("%c", &letra3);


Bien, el tema es que el segundo scanf no me lo toma al compilar .-. solo lo muestra, osea, hace el primero, luego muestra el segundo pegado al tercero pero hace solo el tercera, salta del primero al tecero y el segundo solo muestra el printf pero no da opción de ingreso, se lo come. ¿Alguien me puede decir por qué podría ser esto? Porque realmente no veo errores de los que conozco hasta ahora, muchas gracias.


16-May-2015 10:41
Nacho Cabanes (+83)

No es un error extraño. Es el comportamiento esperable (y peligroso) de scanf cuando lees letra a letra:

Si escribes 2 y luego pulsas Intro, has introducido dos letras, de modo que letra2 vale... el avance de carro, y letra3 tomará el valor de tu segunda letra.

Mira el apartado 4.4 del curso:
http://www.aprendeaprogramar.com/mod/resource/view.php?id=613






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)