w3resource

C fflush() function

C library function - fflush()

The fflush() function is used to empty the buffer that is associated with the specified output stream, if possible. The fflush() function undoes the effect of any ungetc() function if the stream is open for input. The stream remains open after the call.

Syntax:

int fflush(FILE *stream)

fflush() Parameters:

Name Description Required /Optional
stream Identifies an address for a file descriptor, which is an area of memory associated with an input or output stream. Required

Return value from fflush()

  • Upon successful completion, fflush() shall return 0; otherwise, it shall set the error indicator for the stream, return EOF, and set errno to indicate the error.

Example: fflush() function

Following example deletes a stream buffer.

#include <stdio.h>
#include <ctype.h>
 
int main(void)
{
   FILE *stream;
   int c;
   unsigned int result = 0;
 
   stream = fopen("test.txt", "r");
   while ((c = getc(stream)) != EOF && isdigit(c))
      result = result * 10 + c - '0';
   if (c != EOF)
      ungetc(c, stream);
 
   fflush(stream);
 
   printf("The result is: %d\n", result);
   if ((c = getc(stream)) != EOF)
      printf("The character is: %c\n", c);
} 

Output:

The result is: 0

C Programming Code Editor:

Previous C Programming: C ferror()
Next C Programming: C fgetpos()



Follow us on Facebook and Twitter for latest update.

C Programming: Tips of the Day

Reading a string with scanf :

An array "decays" into a pointer to its first element, so scanf("%s", string) is equivalent to scanf("%s", &string[0]). On the other hand, scanf("%s", &string) passes a pointer-to-char[256], but it points to the same place.

Then scanf, when processing the tail of its argument list, will try to pull out a char *. That's the Right Thing when you've passed in string or &string[0], but when you've passed in &string you're depending on something that the language standard doesn't guarantee, namely that the pointers &string and &string[0] -- pointers to objects of different types and sizes that start at the same place -- are represented the same way.

Ref : https://bit.ly/3pdEk6f