E/S de flux Unicode en modes texte et binaireUnicode Stream I/O in Text and Binary Modes

Quand une routine d’E/S de flux Unicode (comme fwprintf, fwscanf, fgetwc, fputwc, fgetws ou fputws) fonctionne sur un fichier ouvert en mode texte (mode par défaut), deux types de conversions de caractères se produisent :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:

  • Conversion Unicode vers MBCS ou MBCS vers Unicode.Unicode-to-MBCS or MBCS-to-Unicode conversion. Quand une fonction d’E/S de flux Unicode s’exécute en mode texte, le flux source ou de destination est supposé être une séquence de caractères multi-octets.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. Par conséquent, les fonctions d’entrée de flux Unicode convertissent les caractères multioctets en caractères larges (comme après un appel à la fonction mbtowc).Therefore, the Unicode stream-input functions convert multibyte characters to wide characters (as if by a call to the mbtowc function). Pour la même raison, les fonctions de flux de sortie Unicode convertissent les caractères larges en caractères multioctets (comme après un appel à la fonction 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).

  • Traduction Retour chariot - Saut de ligne (CR-LF).Carriage return-line feed (CR-LF) translation. Cette traduction se produit avant la conversion MBCS - Unicode (pour les fonctions d’entrée de flux Unicode) et après la conversion Unicode - MBCS (pour les fonctions de sortie de flux 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). Au cours de l’entrée, chaque combinaison Retour chariot - Saut de ligne est traduite en un seul caractère de saut de ligne.During input, each carriage return-line feed combination is translated into a single line feed character. Au cours de la sortie, chaque caractère de saut de ligne est traduit en combinaison Retour chariot - Saut de ligne.During output, each line feed character is translated into a carriage return-line feed combination.

Toutefois, quand une fonction d’E/S de flux Unicode s’exécute en mode binaire, le fichier est supposé être Unicode et aucune traduction CR-LF ou conversion de caractère ne se produisent au cours de l’entrée ou de la sortie.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. Utilisez l’instruction _setmode( _fileno( stdin ), _O_BINARY ); pour utiliser wcin correctement sur un fichier texte Unicode.Use the _setmode( _fileno( stdin ), _O_BINARY ); instruction in order to correctly use wcin on a UNICODE text file.

Voir aussiSee also

Routines du runtime C universel par catégorieUniversal C runtime routines by category
Entrée et sortieInput and Output