public static member function
<ios> <iostream>

std::ios_base::sync_with_stdio

bool sync_with_stdio (bool sync = true);
Toggle synchronization with cstdio streams [static]
Toggles on or off synchronization of all the iostream standard streams with their corresponding standard C streams if it is called before the program performs its first input or output operation.

If called once an input or output operation has occurred, its effects are implementation-defined.

By default, iostream objects and cstdio streams are synchronized (as if this function was called with true as argument).

The stream correspondences are:
C streamiostream object
stdincin
wcin
stdoutcout
wcout
stderrcerr
wcerr
clog
wclog

If the streams are synchronized, a program can mix iostream operations with stdio operations, and their observable effects are guaranteed to follow the same order as used in the program.
If the streams are synchronized, a program can mix iostream operations with stdio operations, and their observable effects are guaranteed to follow the same order as used in the thread.

Concurrently accessing synchronized streams (i.e., streams for which this function returns true) never introduces data races: characters are read/written individually, although with no further guarantees on its order between threads. This may result in interleaved characters between threads unless proper synchronization of entire operations is enforced by the program.

With stdio synchronization turned off, iostream standard stream objects may operate independently of the standard C streams (although they are not required to), and mixing operations may result in unexpectedly interleaved characters.

Notice that this is a static member function, and a call to this function using this member of any stream object toggles on or off synchronization for all standard iostream objects.

Parameters

sync
Boolean parameter indicating whether synchronization is to be turned on or off: A value of true requests synchronization to be turned on, while a value of false requests it to be turned off.

Return Value

Returns the synchronization state before the call.
It always returns true the first time it is called.

Data races

May modify the stream object.
Concurrent access to the same stream object may cause data races.

Exception safety

Basic guarantee: if an exception is thrown, the stream is in a valid state.