¿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?