¿Es esta la forma correcta de vaciar el flujo de entrada C?

Bueno, he estado buscando mucho en Google y aquí sobre cómo vaciar la secuencia de entrada correctamente. Todo lo que escucho son argumentos mixtos sobre cómo fflush () no está definido para la secuencia de entrada, y algunos dicen que simplemente lo hagan de esa manera, y otros simplemente dicen que no lo hagan, no he tenido mucha suerte en encontrar un sistema eficiente eficiente. / forma correcta de hacerlo, en lo que la mayoría de la gente está de acuerdo ... Soy bastante nuevo en programación, así que todavía no conozco todas las sintaxis / trucos del lenguaje, así que mi pregunta es cuál es la solución más eficiente / adecuada. para borrar el flujo de entrada C?

Utilizar elgetchar() dos veces antes de intentar recibir más información?

Solo usa elfflush() funciona en la entrada? o

Así es como pensé que debería hacerlo.

void clearInputBuf(void);  
void clearInputBuf(void) 
{ 
      int garbageCollector; 
      while ((garbageCollector = getchar()) != '\n' && garbageCollector != EOF) 
      {}
}

Entonces, cada vez que necesito leer un nuevo scanf (), o usar getchar () para pausar el programa, simplemente llamo clearInputBuf .. Entonces, ¿cuál sería la mejor manera de salir de las tres soluciones o hay una opción aún mejor?

Respuestas a la pregunta(4)

Su respuesta a la pregunta