Unicode fluxo e/S no texto e modos binários
Quando a rotina de e/S de fluxo de Unicode (tal como fwprintf, fwscanf, fgetwc, fputwc, fgetws, ou fputws) opera em um arquivo que está aberto no modo de texto (o padrão), dois tipos de caractere conversões ocorrem:
Conversão de Unicode para MBCS ou Unicode-MBCS.Quando uma função de I/O de fluxo de Unicode opera em modo de texto, a origem ou fluxo de destino será considerado uma seqüência de caracteres multibyte.Portanto, as funções de entrada de fluxo de Unicode convertem caracteres multibyte caracteres de largura (como se por uma chamada para o mbtowc função).Pelo mesmo motivo, as funções de saída de fluxo de Unicode convertem caracteres de largura caracteres multibyte (como se por uma chamada para o wctomb função).
Retorno de carro – tradução de avanço de linha (CR-LF).Esta conversão ocorre antes do MBCS – conversão de Unicode (para funções de entrada de fluxo de Unicode) e depois o Unicode – conversão de MBCS (para funções de saída de fluxo de Unicode).Durante a entrada, a cada retorno de carro – a combinação de avanço de linha é convertido em um caractere de avanço de linha única.Durante a saída, a cada caractere de avanço de linha é convertida em um retorno de carro – a combinação de avanço de linha.
No entanto, quando uma função de fluxo de I/O Unicode funciona no modo binário, o arquivo será considerado Unicode e nenhuma conversão de conversão ou caractere de CR-LF ocorre durante a entrada ou saída.Use o _setmode (_fileno (stdin), _O_BINARY); instrução para usar corretamente o wcin em um arquivo de texto UNICODE.