Condividi tramite


I/O flusso Unicode in modalità testo e binaria

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

  • Conversione Unicode-to-MBCS o MBCS-to-Unicode. Quando una funzione Unicode di I/O flusso viene eseguita in modalità testo, si presuppone che il flusso di origine o di destinazione sia una sequenza di caratteri multibyte. Pertanto, 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 del ritorno a capo - avanzamento riga (CR-LF). Questa conversione precede la 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 di riga viene convertita in un unico carattere di avanzamento riga. Durante l'output, ogni carattere di avanzamento di riga viene tradotto in una combinazione di ritorno a capo - avanzamento di riga.

Tuttavia, quando una funzione Unicode di flusso I/O viene eseguita in modalità binaria, il file viene considerato come Unicode e nessuna traduzione o conversione di carattere CR-LF viene eseguita per l'input o l'output. Utilizzare il _setmode (_fileno (stdin), _O_BINARY); istruzione per poter utilizzare wcin in un file di testo Unicode.

Vedere anche

Riferimenti

Routine di runtime per categoria

Input e output