El programa que usa scanf("%c",&ch); en lenguaje C causará un error. Si scanf("%c",&ch);
Borrar el buffer de entrada.
Si esto sucede con frecuencia, el retorno de carro ingresado por primera vez puede ser capturado por la segunda operación de entrada. La función de esto es borrar el búfer, para que esta situación no ocurra.
Los espacios en blanco en la cadena de control hacen que scanf() omita una o más líneas en blanco en el flujo de entrada. Los caracteres de espacio en blanco pueden ser espacios, tabulaciones y nuevas líneas. Básicamente, los espacios en blanco en la cadena de control hacen que scanf() lea el flujo de entrada pero no guarde los resultados hasta que se encuentre un carácter que no sea un espacio en blanco.
Esta es la descripción de Baidu de fflush(stdin):
/link?url=ArRVBbbx-82XXxPyMZTh2bu_YIAWdwR9s06FeUIv7th9rDenCeqNxsybFI2SwDir46dZljOiGAt1CR8uTJUESq
Uso de SCANF:
/ link?url=bT8Dg6zhA_r094Htf4pLwr25kdOb3bD8-64r5O3qz7uIb4vpYwtdnmAKAN_RefFziTaXldI7hqNbNF0lk-q0qv334OX7tLggXJ5BbpLYABu