Unicodestream-E/A im Text- und Binärmodus

Wenn eine Unicode-Stream E/A-Routine (wie fwprintf, fwscanf, fgetwc, fputwc, fgetws oder fputws) zu einer Datei, wendet die im Textmodus (Standard) geöffnet ist, werden zwei Arten Zeichenumsetzungen statt:

  • Unicode-zu-MBCS- oder MBCS-zu-Unicode-Konvertierung. Wenn eine Funktion von Unicode im stream-I/O Textmodus funktioniert, wird der Quell- oder Zielstream angenommen, um eine Sequenz von Mehrbytezeichen zu sein. Daher konvertieren die Unicode Streameingabefunktionen Multibytezeichen in Breitzeichen (wie bei einem Aufruf der mbtowc-Funktion). Aus demselben Grund konvertieren die Unicode-Streamausgabefunktionen Breitzeichen in Multibytezeichen (wie bei einem Aufruf der wctomb-Funktion).

  • Übersetzung des Wagenrücklauf/Zeilenvorschubs (CR-LF). Diese Übersetzung tritt vor dem MBCS auf - Unicode-Konvertierung (für Unicode-Stream geben Sie Funktionen) und nach dem - Unicode MBCS-Konvertierung (für Unicode-Streamausgabefunktionen). Während der Eingabe wird jede Wagenrücklauf/Zeilenvorschub-Kombination in ein einzelnes Zeilenvorschubzeichen übersetzt. Während der Ausgabe wird jedes Zeilenvorschubzeichen in eine Wagenrücklauf/Zeilenvorschub-Kombination übersetzt.

Wenn eine Funktion von Unicode stream-I/O im binären Modus ausgeführt wird, die Datei angenommen, um Unicode ist, und keine CR-LF Übersetzung oder Zeichenkonvertierung tritt während der Eingabe oder die Ausgabe auf. Verwenden Sie das _setmode (_fileno (stdin), _O_BINARY); Anweisung zum wcin auf einer UNICODE-Textdatei ordnungsgemäß verwenden.

Siehe auch

Referenz

Laufzeitroutinen nach Kategorie

Eingabe und Ausgabe