I/O flusso Unicode in modalità testo e binariaUnicode Stream I/O in Text and Binary Modes

Quando una routine di I/O del flusso Unicode (come fwprintf, fwscanf, fgetwc, fputwc, fgetws, or fputws) opera su un file aperto in modalità testo (impostazione predefinita), vengono eseguiti due tipi di conversioni di caratteri:When a Unicode stream I/O routine (such as fwprintf, fwscanf, fgetwc, fputwc, fgetws, or fputws) operates on a file that is open in text mode (the default), two kinds of character conversions take place:

  • Conversione Unicode in MBCS o MBCS in Unicode.Unicode-to-MBCS or MBCS-to-Unicode conversion. 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.When a Unicode stream-I/O function operates in text mode, the source or destination stream is assumed to be a sequence of multibyte characters. Di conseguenza, le funzioni Unicode di input flusso convertono i caratteri multibyte in caratteri "wide", come se fosse una chiamata alla funzione mbtowc.Therefore, the Unicode stream-input functions convert multibyte characters to wide characters (as if by a call to the mbtowc function). Per lo stesso motivo, le funzioni Unicode di output flusso convertono i caratteri wide in caratteri multibyte, come se fosse stata chiamata la funzione wctomb.For the same reason, the Unicode stream-output functions convert wide characters to multibyte characters (as if by a call to the wctomb function).

  • Conversione di ritorno a capo - segno di avanzamento riga (CR-LF).Carriage return - linefeed (CR-LF) translation. 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).This translation occurs before the MBCS - Unicode conversion (for Unicode stream input functions) and after the Unicode - MBCS conversion (for Unicode stream output functions). Durante l'input, ogni combinazione di ritorno a capo - segno di avanzamento riga viene convertita in un singolo carattere di avanzamento riga.During input, each carriage return - linefeed combination is translated into a single linefeed character. Durante l'output, ogni carattere di avanzamento riga viene convertito in una combinazione di ritorno a capo - segno di avanzamento riga.During output, each linefeed character is translated into a carriage return - linefeed combination.

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.However, when a Unicode stream-I/O function operates in binary mode, the file is assumed to be Unicode, and no CR-LF translation or character conversion occurs during input or output. Utilizzare _setmode (_fileno (stdin), _O_BINARY); istruzione per poter utilizzare correttamente wcin in un file di testo Unicode.Use the _setmode( _fileno( stdin ), _O_BINARY ); instruction in order to correctly use wcin on a UNICODE text file.

Vedere ancheSee Also

Routine di Universal C Runtime per categoriaUniversal C runtime routines by category
Input e outputInput and Output