Partilhar via


Entrada/Saída de fluxo Unicode nos modos de texto e binário

Quando uma rotina de E/S de fluxo Unicode (como fwprintf, fwscanf, fgetwc, fputwcfgetws, ou fputws) opera em um arquivo aberto no modo de texto (o padrão), ocorrem dois tipos de conversões de caracteres:

  • Conversão de Unicode para MBCS ou MBCS para Unicode. Quando uma função de E/S de fluxo Unicode opera no modo de texto, o fluxo de origem ou destino é assumido como uma sequência de caracteres multibyte. Portanto, as funções de entrada de fluxo Unicode convertem caracteres multibyte em caracteres largos (como se fosse uma chamada para a função mbtowc). Pela mesma razão, as funções de saída de fluxo Unicode convertem caracteres largos em caracteres multibyte (como se fosse por uma chamada para a função wctomb).

  • Tradução da linha de retorno do carro (CR-LF). Esta conversão ocorre antes da conversão MBCS - Unicode (para funções de entrada de fluxo Unicode) e após a conversão Unicode - MBCS (para funções de saída de fluxo Unicode). Durante a entrada, cada combinação de retorno de carro e 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 uma combinação de alimentação de linha de retorno de carro.

No entanto, quando uma função de E/S de fluxo Unicode opera no modo binário, o arquivo é assumido como Unicode, e nenhuma tradução CR-LF ou conversão de caracteres ocorre durante a entrada ou saída. Use a instrução _setmode( _fileno( stdin ), _O_BINARY ); para usar wcin corretamente num ficheiro de texto Unicode.

Ver também

Rotinas de tempo de execução Universal C por categoria
Entrada e saída