2011-01-07 2 views
3

В соответствии с "Conventional Wisdom is Wrong", CRT выполняет справедливую работу, чтобы сгладить несоответствия при обработке Unicode в консоли на Win32, если соответствующий флаг установлен на stdout. Однако здесь я не использую функции стиля cstdio. Я использую библиотеку iostream. Как _setmode взаимодействует со стандартными потоками std::wcout, std::wclog и std::wcerr (если вообще?). Если это невозможно использовать с потоками, возможно ли это/как получить эквивалентное поведение?Как «_setmode» в CRT Visual Studio взаимодействует с `std :: wcout`?

Ответы, которые работают либо на VS2008, либо на VS2010, будут работать - меня ни о чем не беспокоит раньше.

+1

Yuck. setlocale() имеет значение для iostream. –

+0

Релевантные часто задаваемые вопросы, указывающие на то, что ответ будет очень специфичным для окружающей среды: http://www.parashift.com/c++-faq-lite/input-output.html#faq-15.13 –

+0

Также связанный, но довольно неубедительный: http: // groups.google.com/group/microsoft.public.dotnet.languages.vc/browse_thread/thread/1275313963d6f67e –

ответ

1

Это не, из памяти. Был вопрос, на который я уже давно ответил, где wprintf() будет печатать правильно, но wcout < < не будет.

+0

Любая идея, как получить эквивалентное поведение? –

+0

@Billy: Несмотря на некоторые значительные усилия, я не мог заставить его wcout правильно печатать во всех случаях. – Puppy

Смежные вопросы