E/S de flux Unicode en modes texte et binaire
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 (valeur par défaut), deux types de conversions de caractères se produisent :
Conversion Unicode vers MBCS ou MBCS vers Unicode. 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. Par conséquent, les fonctions d'entrée de flux Unicode convertissent les caractères multioctets en caractères larges (comme suite à un appel à la fonction
mbtowc
). Pour la même raison, les fonctions de flux de sortie Unicode convertissent les caractères larges en caractères multioctets (comme suite à un appel à la fonctionwctomb
).Traduction Retour chariot - Saut de ligne (CR-LF). 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). Au cours de l’entrée, chaque combinaison Retour chariot - Saut de ligne est traduite en un seul caractère de saut de ligne. Au cours de la sortie, chaque caractère de saut de ligne est traduit en combinaison Retour chariot - Saut de ligne.
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. Utilisez l’instruction _setmode( _fileno( stdin ), _O_BINARY );
pour utiliser wcin
correctement sur un fichier texte Unicode.
Voir aussi
Routines du runtime C universel par catégorie
Entrée et sortie