потоки cstdio против потоков iostream?
Я только что узнал о существованииios_base::sync_with_stdio
функция, которая в основном позволяет отключить (или включить, если вы уже выключили) синхронизацию междуiostream
потоки, которые используются в C ++ иcstdio
потоки, которые являются частью стандарта C.
Теперь я всегда думал, чтоstdout
, stderr
а такжеstdin
в C были по существу обернуты в набор объектов в C ++ в классах iostreams. Но если они должны бытьсинхронизированный друг с другом, это будет означать, что C ++iostream
классыне обертка вокруг Cstdin
и т.п.
Я довольно смущен этим? Может кто-нибудь уточнить, как iostream C ++ и C stdioразные вещи, которые делают одно и то же, просто на другом уровне абстракции? Я думал, что они былито же самое!?
Как получается, что они должны быть синхронизированы? Я всегда думал, что это одно и то же, одно оборачивает другое.