Una nota sobre fflush(stdin), esta es la referencia de la funcion:
Código C:
Ver original
ostream points to an output stream or an update stream in which the
most recent operation was not input
, the
fflush function causes any
unwritten data for that stream to be delivered to the host environment to
be written to the file; otherwise, the behavior is undefined.
Eso significa que aunque en determinadas implementaciones la funcion haga lo que se espera, esa funcion no está pensada para trabajar con el FILE* stdin. La alternativa es forzar la lectura de la cola de entrada estandar hasta vaciarla:
Código C:
Ver originalvoid fflush_stdin() {
char c;
while ((c
= getchar()) != '\n' && c
!= EOF
); }
//y la ejecutas antes de cada scanf
fflush_stdin();
Saludos
vosk