std::ios_base::sync_with_stdio
|
|
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
<metanoindex/>
<tbody> </tbody> static bool sync_with_stdio( bool sync = true ); |
||
Sets whether the standard std::cin, std::cout, std::cerr, std::clog, std::wcin, std::wcout, std::wcerr and std::wclog C++ streams are synchronized to the standard stdin, stdout, stderr and stdlog C streams after each input/output operation.
For a standard stream str, synchronized with the C stream f, the following pairs of functions have identical effect:
std::fputc(f, c) and str.rdbuf()->sputc(c)std::fgetc(f) and str.rdbuf()->sbumpc(c)std::ungetc(c, f) and str.rdbuf()->sputbackc(c)
In practice, this means that the C++ and the C streams use the same buffer, and therefore, can be mixed freely. In addition, synchronized C++ streams are guaranteed to be thread-safe (individual characters output from multiple threads may interleave, but no data races occur)If the synchronization is turned off, the C++ standard streams are allowed to buffer their I/O independently, which may be considerably faster in some cases.
By default, all eight standard C++ streams are synchronized with their respective C streams.
It is implementation-defined if this function has any effect if called after some I/O occurred on the standard stream.
Параметры
| sync | — | the new synchronization setting |
Возвращаемое значение
synchronization state before the call to the function
Пример
#include <iostream>
#include <cstdio>
int main()
{
std::cout.sync_with_stdio(false);
std::cout << "a\n";
std::printf("b\n");
std::cout << "c\n";
}
Вывод:
b
a
c
См. также
| пишет в стандартный выходной поток C stdout (глобальный объект) | |
| пишет в стандартный поток ошибок C stderr, небуферизирована (глобальный объект) | |
| пишет в стандартный поток ошибок C stderr (глобальный объект) |