El segundo scanf no funciona

Estoy teniendo problemas con este código de lenguaje c:

char st[2]; printf("enter first value:"); scanf("%c", &st[0]); printf("enter second value:"); scanf("%c", &st[1]); 

Entonces, mi computadora no me pidió que ingresara el segundo valor, quiero decir que solo imprime la primera statement printf , luego ingrese un carácter y luego solo imprime la segunda statement printf y el progtwig finaliza sin tomar la segunda entrada.

Por favor ayuda. ¿Qué hay de malo con este código?

-Gracias por adelantado.

Bueno lo hizo Los caracteres producidos por la tecla ENTRAR ya están presentes en el búfer.

Creo que su problema es que el segundo scanf está recibiendo la tecla “Enter” presionando.

Obtiene la nueva línea implícita que ingresó como segundo carácter, es decir, st[1] está obteniendo el valor '\n' . Una manera fácil de solucionar este problema es incluir la nueva línea en la cadena de formato esperada: scanf("%c\n", &st[0]);

Cambio

 scanf("%c", &st[0]); 

a esto

 scanf(" %c", &st[0]); 

Esa es una respuesta disparatada (sin verificación de errores ni nada) pero es rápida y fácil.

utilizar fflush(stdin); funciona antes del segundo scanf(); . Enjuagará la tecla ENTER generada después del primer scanf () ;. En realidad, su segundo scanf () toma el ENTER como su entrada y dado que el scanf termina después de obtener un ENTER, no está tomando nada más a su lado.