Hola ivancea96, definiticamente voy a evitar usarlo para estos casos. Leí sobre el scanf(" %c", &c) y una de las formas que encontré de solucionar el problema es colocando scanf( "%*c %c", &b ); dejando el código así:
Lo que hacemos en la novena y onceaba línea es primero leer con "%*c" el caracter de salto de línea que quedó en el buffer de haber leído la entrada anterior del teclado (lo que queda al apretar Enter) y luego leemos el caracter ingresado.
MAFUS, había leido también sobre tu método, es la primer forma que encontré para soluciónar el problema y funciona muy bien para este caso. El código quedó así:
Aún no termino de entender como es que funciona getchar, ese while sin una sentencia o bloque de código a ejecutar me cayó muy raro jaja.
Veo que en C hay muchísimas maneras para resolver un mismo problema!
mester también había leído sobre lo que comentaste, en su momento usaré ese método.
Muchas gracias nuevamente a todos.
Saludos!
Código (c) [Seleccionar]
#include <stdio.h>
int main(int argc, char const *argv[])
{
char a,b,c;
printf( "Introduzca primer caracter: " );
scanf( "%c", &a );
printf( "Introduzca segundo caracter: " );
scanf( "%*c %c", &b );
printf( "Introduzca tercer caracter: " );
scanf( "%*c %c", &c );
printf( "Los valores son: %c, %c, %c \n", a, b, c );
return 0;
}
Lo que hacemos en la novena y onceaba línea es primero leer con "%*c" el caracter de salto de línea que quedó en el buffer de haber leído la entrada anterior del teclado (lo que queda al apretar Enter) y luego leemos el caracter ingresado.
MAFUS, había leido también sobre tu método, es la primer forma que encontré para soluciónar el problema y funciona muy bien para este caso. El código quedó así:
Código (c) [Seleccionar]
#include <stdio.h>
int main()
{
char a, b, c;
printf( "Introduzca primer caracter: " );
scanf( "%c", &a );
printf( "Introduzca segundo caracter: " );
while(getchar()!='\n');
scanf( "%c", &b );
printf( "Introduzca tercer caracter: " );
while(getchar()!='\n');
scanf( "%c", &c );
printf( "Los valores son: %c, %c, %c \n", a, b, c );
return 0;
}
Aún no termino de entender como es que funciona getchar, ese while sin una sentencia o bloque de código a ejecutar me cayó muy raro jaja.
Veo que en C hay muchísimas maneras para resolver un mismo problema!
mester también había leído sobre lo que comentaste, en su momento usaré ese método.
Muchas gracias nuevamente a todos.
Saludos!