Вывод в консоль cout и wcout одновременно
Всем привет.
-
Я с никогда не понимал фразу: «при первом испоьзовании cout/wcout, всё это хозяйство берёт ориентацию и в дальнейшем нужно не миксовать w… с безпрефиксными вариантами (без w…)». А что это означает на практике? Как происходит эта «ориентация»? Почему миксовать не получается? В общем хочется деталей для понимания.
-
Первый вопрос вытекает из того, что юзаю ncurses, внутренне она конвертит все входящие символы в wide символы (судя по необходимости устанавливать локаль, когда входящие символы не ASCII). Логично, что и от неё в консоль идут wide символы, и черт его знает что там сориентируется и в какую сторону. А из-за непонимания механизма - всё это какая-то магия.
-
Ну чисто собственный наивный взгляд - видимо, wcout и cout пишут в один и тот же файл (очевидно да), принимающая сторона хранит символы в wide, и вот ей нужно определиться - конвертить ли входящий поток narrow->wide или нет. Ну если так, то я не могу после ncurses (которая широкая внутренне) печатного цикла использовать cout и мне нужно переоткрывать stdout как пишут в доках. Кто-нибудь не согласен?