Question:
Is it reliable to mix cout
statements withfprintf
statements in the same C++ code ifcout.sync_with_stdio()
is used? Does thiscreate one single buffered file I/O stream?
Answer:
In general, there is no problem using fprintf
and cout together in the sameprogram. The function ios::sync_with_stdio
is not standard to the C++ languagestreams library and is defined by a few PC platforms. Calling this function changes implementations of the predefined objects like cout cin cerr
to usea stdiobuf
instead of a filebuf
.
There will be some perfomance degradation, because both the stdio
and streambuf
willbe buffering the output.