Q:

Flush cout manually only

As far as I know streaming std::endl into std::cout will flush it. I get that that behavior makes sense for most applications.
My problem is that I have some output that uses multiple std::endl's and therefore flushes the output. This is really bad for the performance of my program and also causes a lot of graphical glitches since I am jumping around quite a lot.
So my question is if I can tell std::cout to wait with the next flush until I explicitly call std::cout.flush() or stream std::flush into std::cout.
If this is possible I'd also like to know how I then can reverse that since it does not always make sense for me.

A:

Use std::cout << '\n' instead of std::endl. This avoids the flush after every line. std::endl will always flush, since that is its purpose. There's no option to disable that behavior. However, there's no requirement to use std::endl at all.
If you want to increase the buffer size for standard output, you could try increase buffer for cout.

