Поток ВВОДА-ВЫВОДА в юникоде в режимах текста и бинарный
Если подпрограмма поток в юникоде (например ВВОДА-ВЫВОДА fwprintf" fwscanf" fgetwc" fputwc" fgetwsили fputwsприводит) в файл, открытый в режиме текст (по умолчанию), 2 типа преобразования символов помните:
Преобразование Юникод-к-многобайтовой многобайтовой кодировки или кодировка-к-Юникода.Когда функция Юникода stream-I/O работает в режиме текст, предполагается, что поток источника или назначения последовательностью многобайтовых символов.Поэтому функции поток-входного преобразования ввода в юникоде в многобайтовые символы расширенные символы (если вызовом mbtowc функция).Для этой же причине преобразование расширенных символов Юникода функции поток-выхода к символам (если при вызове многобайтовым wctomb функция).
Возврат каретки - перевод перевода строки (CR-LF).Это преобразование происходит перед многобайтовой кодировкой юникод (для функций - преобразованием входного потока в юникоде) и в юникоде - преобразование многобайтовой кодировки (для функций вывода потока юникод).Во время ввода, каждый символ возврата каретки - сочетание перевода строки преобразуется в единственный символ перевода строки.Во время вывода, каждый символ перевода строки преобразуется в символ возврата каретки - сочетание перевода строки.
Однако если функция Юникода stream-I/O работает в бинарном режиме, предполагается, что файл юникод, а преобразование CR-LF или преобразование символов не происходят во время ввода или вывода.Используйте _setmode (_fileno (stdin), _O_BINARY); инструкция правильно использовать wcin в текстовом файле в юникоде.