table of contents
std::basic_ostream::flush(3) | C++ Standard Libary | std::basic_ostream::flush(3) |
NAME¶
std::basic_ostream::flush - std::basic_ostream::flush
Synopsis¶
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¶
pubsync invokes sync()
(public member function of std::basic_streambuf<CharT,Traits>)
sync synchronizes the buffers with the associated character sequence
[virtual] (virtual protected member function of
std::basic_streambuf<CharT,Traits>)
flush flushes the output stream
(function template)
endl outputs '\n' and flushes the output stream
(function template)
sync synchronizes with the underlying storage device
(public member function of std::basic_istream<CharT,Traits>)
2022.07.31 | http://cppreference.com |