flush


manipulator function
<ostream>
ostream& flush ( ostream& os );

Flush stream buffer

Synchronizes the buffer associated with the stream to its controlled output sequence. This effectively means that all unwritten characters in the buffer are written to its controlled output sequence as soon as possible ("flushed").

The manipulator only has meaning for buffered streams, in which case it effectively calls the pubsync member of the streambuf object (rdbuf()->pubsync()) associated to the stream.

Standard output streams also have a member function with the same name and behavior (see ostream::flush).

Parameters

os
Output stream on which the insertion is performed.
Because this function is designed as a manipulator, it can be used directly with no arguments in conjunction with the insertion operator (<<) on output streams (see example).


Return Value

The same stream object on which the operation was performed (parameter os).

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Flushing files (flush manipulator)
#include <fstream>
using namespace std;

int main () {

  ofstream outfile ("test.txt");

  for (int n=0; n<100; n++)
    outfile << n << flush;

  outfile.close();

  return 0;
}


When this code is executed the content of the file test.txt is updated 100 times.

Basic template declaration

1
2
template <class charT, class traits>
  basic_ostream<charT,traits>& flush ( basic_ostream<charT,traits>& os );


See also