fflush

Sintaxis

#include <stdio.h>

int fflush(FILE *file);

Descripción

Si file no es NULL, esta función provoca que cualquier dato almacenado en el buffer no escrito se escriba en el fichero cuyo descriptor es  file

Si file es NULL, fflush escribe cualquier salida almacenada en el buffer en todos los ficheros abiertos para escritura.

Nótese que fflush no tiene efecto para ficheros abiertos solamente en modo lectura.

Valor devuelto

Cero si tiene éxito, -1 en caso de error.

Portabilidad

ANSI, POSIX

Ejemplo

En algunos entornos de desarrollo la función printf está bufferizada y cuando se usa en combinación con scanf la ejecución del programa comienza esperando la introducción de un valor antes de mostrar el mensaje que indique el dato solicitado. Esta situación se resuelve en el ejemplo utilizando fflush.

#include <stdio.h>
int main(){
   int i, j;
   printf("Introduzca un entero");
   fflush(stdout);
   scanf("%d",&i);
   printf("Introduzca otro entero");
   fflush(stdout);
   scanf("%d",&j);
   printf("El resultado de la división entre %d y %d es: %f", i, j, i/(float)j);
   fflush(stdout);
   return 0;
}