I/O flusso Unicode in modalità testo e binaria

Quando una routine di I/O del flusso Unicode (come fwprintf, fwscanf, fgetwc, fputwc, fgetws o fputws) opera su un file aperto in modalità testo (impostazione predefinita), due tipi di conversioni di carattere vengono eseguite:

  • Conversione Unicode in MBCS o MBCS in Unicode. Quando una funzione di I/O del flusso Unicode viene eseguita in modalità testo, si presuppone che il flusso di origine o di destinazione sia una sequenza di caratteri multibyte. Di conseguenza, le funzioni Unicode di input flusso convertono i caratteri multibyte in caratteri "wide", come se fosse una chiamata alla funzione mbtowc . Per qualche motivo, le funzioni Unicode di output flusso convertono i caratteri "wide" in caratteri multibyte, come se fosse una chiamata alla funzione wctomb .

  • Conversione di ritorno a capo-avanzamento riga. Questa conversione si verifica prima della conversione MBCS - Unicode (per le funzioni di input del flusso Unicode) e dopo la conversione Unicode - MBCS (per le funzioni di output del flusso Unicode). Durante l'input, ogni combinazione di ritorno a capo-avanzamento riga viene convertita in un singolo carattere di avanzamento riga. Durante l'output, ogni carattere di avanzamento riga viene convertito in una combinazione di ritorno a capo-avanzamento riga.

Tuttavia, quando una funzione di I/O del flusso Unicode viene eseguita in modalità binaria, il file viene considerato come Unicode e nessuna conversione CR-LF o conversione di caratteri si verifica durante l'input o l'output. Usare l'istruzione _setmode( _fileno( stdin ), _O_BINARY ); per usare correttamente wcin in un file di testo Unicode.

Vedi anche

Routine di Universal C Runtime per categoria
Input e output