The C++ std::ios::unitbuf() function is a manipulator that sets the streams unit buffer mode. When this function is invoked, the stream is automatically flushed after each output operation, ensuring that data is immediately written to the output device.
SyntaxThis function is useful in real-time applications where immediate feedback is necessary, such as logging or interactive user interfaces.
Following is the syntax for std::ios::unitbuf() function.
ios_base& unitbuf (ios_base& str);Parameters
This function returns the Argument str.
ExceptionsIf an exception is thrown, str is in a valid state.
Data racesIt modifies str. Concurrent access to the same stream object may cause data races.
ExampleIn the following example, we are going to consider the basic usage of the unitbuf() function.
#include <iostream> int main() { std::cout << std::unitbuf; std::cout << "Welcome, "; std::cout << "To Everyone.!" << std::endl; std::cout << std::nounitbuf; return 0; }Output
Output of the above code is as follows −
Welcome, To Everyone.!Example
Let's look at the following example, where unitbuf() causes each output to be flushed, making sure each count value appears on the screen every second as intended.
#include <iostream> #include <chrono> #include <thread> int main() { std::cout << std::unitbuf; for (int x = 1; x < 4; ++x) { std::cout << "Count: " << x << std::endl; std::this_thread::sleep_for(std::chrono::seconds(1)); } std::cout << std::nounitbuf; return 0; }Output
Following is the output of the above code −
Count: 1 Count: 2 Count: 3
ios.htm
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4