std::basic_ostream<CharT,Traits>::flush
From cppreference.com
< cpp | io | basic ostream
basic_ostream& flush(); |
||
Writes uncommitted changes to the underlying output sequence.
If rdbuf() is a null pointer, does nothing
Otherwise, behaves as an UnformattedOutputFunction (since C++11). After constructing and checking the sentry object, calls rdbuf()->pubsync(). If the call returns -1, calls setstate(badbit).
Parameters
(none)
Return value
*this
Exceptions
May throw std::ios_base::failure if (exceptions() & badbit) != 0.
Example
Run this code
#include <thread> #include <iostream> #include <chrono> using namespace std::chrono_literals; void f() { std::cout << "Output from thread... "; for (int i{1}; i != 10; ++i) { std::this_thread::sleep_for(250ms); std::cout << i << ' '; // output three numbers at once; // the effect is observable only in real-time if (0 == (i % 3)) { std::cout.flush(); } } std::cout << std::endl; // flushes as well } int main() { std::thread tr{f}; std::this_thread::sleep_for(150ms); std::clog << "Output from main\n"; tr.join(); }
Output:
Output from main Output from thread... 1 2 3 4 5 6 7 8 9
See also
invokes sync() (public member function of std::basic_streambuf<CharT,Traits> ) | |
[virtual] |
synchronizes the buffers with the associated character sequence (virtual protected member function of std::basic_streambuf<CharT,Traits> ) |
flushes the output stream (function template) | |
outputs '\n' and flushes the output stream (function template) | |
synchronizes with the underlying storage device (public member function of std::basic_istream<CharT,Traits> ) |