E/S de fluxo Unicode em modos de texto e binários
Quando uma rotina de E/S de fluxo Unicode (como fwprintf, fwscanf, fgetwc, fputwc, fgetws, ou) fputwsoperar em um arquivo que será aberto no modo de texto (o padrão), dois tipos de conversão de caractere ocorre:
Unicode-à-MBCS ou conversão de MBCS-à-Unicode. Quando uma função de Unicode stream-I/O opera no modo de texto, o fluxo de origem ou de destino será considerado como uma sequência de caracteres de vários bytes. Portanto, as funções de entrada de fluxo Unicode convertem os caracteres multibytes em caracteres amplos (como uma chamada para a função mbtowc. Pelo mesmo motivo, as funções de saída de fluxo Unicode convertem os caracteres largos em caracteres multibyte (como uma chamada para a função wctomb.
Retorno de carro – tradução de alimentação de linha (CR-LF). Essa conversão ocorre antes da conversão de MBCS – Unicode (para funções de fluxo de entrada Unicode) e após a conversão em Unicode – de MBCS (para funções de saída do fluxo Unicode). Durante a entrada, cada retorno de carro – combinação de alimentação de linha é convertida em um único caractere de alimentação de linha. Durante a saída, cada caractere de alimentação de linha é convertido em um retorno de carro – combinação de alimentação de linha.
No entanto, quando uma função de Unicode stream-I/O opera no modo binário, o arquivo é considerado como Unicode, e nenhuma conversão de CR-LF ou conversão de caractere 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.