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