Borrar el búfer del teclado en C ++

Yo una parte de mi aplicación que he usadoSleep(5000) (Necesito esperar 5 segundos)

El problema es que si el usuario presiona cualquier tecla del teclado durante estos 5 segundos, las teclas se leerán después de dormir y eso causará problemas a mi aplicación.

¿Cómo puedo vaciar el búfer después de dormir?

Lo intentécin.clear() ysetbuf(stdin, NULL) pero no pueden borrar el búfer si hay más de un carácter en el búfer.

Respuestas a la pregunta(3)

Su respuesta a la pregunta