[C con Clase] que cosa es fflush

yandy cruz yandy08024 en cfg.jovenclub.cu
Lun Ene 22 17:48:58 CET 2007


muchas grasias por responderme
me fue de mucha alluda gracias
atentamente yandy

> Hola Yandy
> Bueno, el fflush, es una función que permite limpiar un flujo determinado.
> Recuerda que en C/C++ se habla de flujos, por ejemplo flujo de entrada, de
> salida, de entrada/salida etc.
> Por ejemplo cuando tu tienes un programa en que el usuario introduce datos. Esos
> datos son escritos con el teclado, y luego estos van a depositarse en las
> variables creadas para cada uno. Pero a veces es necesario poder limpiar la zona
> de memoria que tiene asociada el teclado, para que quede listo para recibir otros
> datos. Sin que se mezcle con cosas que allí existan. Para ello nos sirve esta
> función. Por ejemplo este programa:
>
> #include <cstdlib>
> #include <iostream>
>
> using namespace std;
>
> int main(int argc, char *argv[])
> {
>     int Edad;
>     printf("Introduxca su edad: ");
>     scanf("%d", &Edad);
>     fflush(stdin);
>
>     printf("Su edad es de: %d", Edad);
>
>     getchar();
>
>     return 0;
> }
>
> Observa como luego de darle entrada al dato Edad limpiamos stdin. stdin es la
> entrada estándar, es decir el flujo asociado con la entrada estándar, lo que
> hacemos es dejarlo limpio. esto es útil porque por ejemplo la función scanf
> acepta datos, pero no los almacena en la variable hasta que se oprima la tecla
> ENTER, pero una línea despues existe la función getchar(); la cual, espera a que
> el usuario oprima ENTER, sino limpiaramos el buffer stdin, es decir si quitáramos
> la línea fflush(stdin); entonces en el buffer del teclado se quedaría el carácter
> '\n' que es precisamente el carácter que espera la función getchar() de resultas
> que el programa "entendería" que ya ENTER fue pulsado y seguiría a la otra línea
> return 0 terminando y cerrando la ventana (digo, si lo ejecutas desde un sistema
> operativo no DOS) prueba a comentar la línea fflush(stdin), es decir hazla un
> comentario para que no se ejecute, y veras como el programa no se queda en
> pantalla, a pesar de que getchar está esperando a que se presione ENTER para
> continuar.
>
> Espero que tesea útil la explicasión.
> Rey.
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



___________________________________
Joven Club Cienfuegos
http://www.cienfuegos.jovenclub.cu





Más información sobre la lista de distribución Cconclase