Почему именно std::cin/std::cout медленнее, чем scanf/printf?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему именно std::cin/std::cout медленнее, чем scanf/printf?

Сообщение Anonymous »

Я понимаю, что std::cin/

Код: Выделить всё

std::cout
обычно медленнее, чем scanf/, и это в первую очередь связано с синхронизацией со стандартными потоками C. Однако все объяснения, которые я видел, просто говорят об этом и оставляют все как есть. Я ищу более глубокое понимание того, что на самом деле происходит «под капотом», на уровне реализации. В частности, как именно std::cin/

Код: Выделить всё

std::cout
синхронизирован со стандартным вводом/stdout? Какие механизмы задействованы?
Меня интересует подробное объяснение того, что происходит внутри типичных реализаций стандартной библиотеки. Ссылки на исходный код стандартной библиотеки C++ или реализации компилятора приветствуются.
Изменить: Я отредактировал вопрос, чтобы сделать его более кратким и целенаправленным.

Подробнее здесь: https://stackoverflow.com/questions/798 ... anf-printf
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»