Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/09/2013, 19:06
ecfisa
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 11 años, 10 meses
Puntos: 22
Respuesta: No entiendo poruqe pasa esto

Hola Tapasa.

Es por que queda almacenada la secuencia de escape '\n' en el buffer de teclado, para evitarlo:
Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. void clearbuff(); // vaciar buffer de teclado
  4.  
  5. int main(){
  6.   long int a;
  7.   float b;
  8.   char c;
  9.  
  10.   printf("Dame un valor numerico para a: ");
  11.   scanf("%ld", &a);
  12.   clearbuff();
  13.  
  14.   printf("\nDame un valor decimal para b: ");
  15.   scanf("%g", &b);
  16.   clearbuff();
  17.  
  18.   printf("\nDame una letra para c : ");
  19.   scanf("%c", &c);
  20.   clearbuff();
  21.  
  22.   printf("\nEl valor de la variable de tipo entero es: %ld\n",a);
  23.   printf("El valor de la variable de tipo flotante es: %g\n",b);
  24.   printf("El valor de la variable de tipo caracter es: %c\n",c);
  25.  
  26.   getchar();
  27.   return 0;
  28. }
  29.  
  30. // vaciar buffer de teclado
  31. void clearbuff()
  32. {
  33.   while((getchar())!= '\n');
  34. }

Saludos.