Unicode-Stream E/A in den Text Binärdatei-Modi
Wenn eine Unicode-Datenstrom E/A-Routine (z. B. fwprintf, fwscanf, fgetwc, fputwc, fgetwsoder betreibt fputws) an eine Datei im Textmodus (Standard) geöffnet ist, werden zwei Arten Zeichenumsetzungen statt:
UNICODE-zu-MBCS- oder MBCS-zu-UNICODE-Konvertierung.Wenn eine Funktion von Unicode stream-I/O im Textmodus ausgeführt wird, wird der Quell- oder Zielstream angenommen, dass eine Sequenz von Mehrbytezeichen sein.Daher konvertieren, die Unicode Stream INPUT-Funktionen Mehrbytezeichen in Breitzeichen (als sei es durch einen Aufruf der mbtowc-Funktion).Aus demselben Grund konvertieren, die Unicode Datenstrom-ausgegebenen Funktionen (als Mehrbytezeichen in Breitzeichen, ob durch einen Aufruf der wctomb-Funktion).
Übersetzung des Wagenrücklauf/Zeilenvorschubs (CR-LF).Diese Übersetzung erfolgt vor dem MBCS auf die Eingaben für Funktionen Unicode-Datenstrom Unicode-Konvertierung () und nach dem Unicode (für MBCS-Konvertierung – ausgabefunktionen Unicode-Datenstrom).Während der Eingabe wird jede Wagenrücklauf/Zeilenvorschub-Kombination in einem einzigen Zeilenvorschubzeichen übersetzt.Während der Ausgabe wird jedes Zeilenvorschubzeichen in eine Wagenrücklauf/Zeilenvorschub-Kombination übersetzt.
Wenn jedoch eine Funktion von Unicode stream-I/O im binären Modus ausgeführt wird, wird die Datei als Unicode sein, und keine CR-LF Übersetzung oder Zeichenumsetzung tritt während der Eingabe oder Ausgabe auf.Verwenden Sie das _setmode (_fileno stdin (;) _O_BINARY) Anweisung zum wcin auf einer UNICODE-Textdatei ordnungsgemäß verwenden.