Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Es recomendable usar fflush(stdin) antes/después de un scanf?

Estas en el tema de Es recomendable usar fflush(stdin) antes/después de un scanf? en el foro de C/C++ en Foros del Web. Esque en algunos lados leeí que sí, en otros que no... Y estoy confundido :S Para qué sirve, en primera, y sí o no es ...
  #1 (permalink)  
Antiguo 30/05/2011, 10:32
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Pregunta Es recomendable usar fflush(stdin) antes/después de un scanf?

Esque en algunos lados leeí que sí, en otros que no...

Y estoy confundido :S

Para qué sirve, en primera, y sí o no es recomendable usarlo antes/después de un scanf... y si es así, cuándo es recomendable hacerlo?

Saludos!
  #2 (permalink)  
Antiguo 30/05/2011, 11:42
 
Fecha de Ingreso: abril-2011
Mensajes: 49
Antigüedad: 13 años
Puntos: 1
Respuesta: Es recomendable usar fflush(stdin) antes/después de un scanf?

fflush(stdin) sirve para limpiar el buffer de entrada de teclado yo lo suelo poner al inicio del main y después de un scanf o un gets para evitar que guarde un enter en el buffer y lo malinterprete en siguientes bucles.
Espero haberte sido de ayuda
  #3 (permalink)  
Antiguo 30/05/2011, 14:20
 
Fecha de Ingreso: marzo-2011
Mensajes: 54
Antigüedad: 13 años, 2 meses
Puntos: 11
Respuesta: Es recomendable usar fflush(stdin) antes/después de un scanf?

Espero que esto te sea de ayuda ;)

Cita:
Iniciado por Littlehorse
2) fflush(stdin);

fflush(stdin) es un invitado casi diario. Pocas veces pasa un dia sin que alguien lo recomiende o lo mencione como la solucion! a los malos comportamientos de las pausas en los programas.

STDIN, como su nombre lo indica, significa 'Standard input'. Es decir, el ingreso por teclado.

Acorde al Standard, fflush espera solamente un stream de salida (STDOUT: 'Standard Output) por lo que el comportamiento con streams de entrada como STDIN es indefinido. Por mas que en algunas plataformas funcione, o que en algunos compiladores funcione, no deberia ser utilizado.

Por el otro lado, para evitar esas pausas fastidiosas es necesario evitar las funciones que dejan basura por doquier (como scanf();) y utilizar funciones como la ya mencionada fgets();
Fuente de la cita: [URL="http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html"]Lo que no hay que hacer en C++ básico[/URL]
  #4 (permalink)  
Antiguo 03/06/2011, 11:00
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Respuesta: Es recomendable usar fflush(stdin) antes/después de un scanf?

Cita:
Iniciado por el_java_07 Ver Mensaje
Espero que esto te sea de ayuda ;)



Fuente de la cita: [URL="http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html"]Lo que no hay que hacer en C++ básico[/URL]
Entonces cómo se puede limpiar el buffer de entrada? =/
  #5 (permalink)  
Antiguo 03/06/2011, 13:12
 
Fecha de Ingreso: marzo-2011
Mensajes: 54
Antigüedad: 13 años, 2 meses
Puntos: 11
Respuesta: Es recomendable usar fflush(stdin) antes/después de un scanf?

En el link que te he puesto te pone todas las alternativas a lo que no se debe hacer.

Etiquetas: scanf
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:24.