Strumień We/Wy Unicode w trybach tekstowym i binarnym

Kiedy Unicode strumień we/wy rutynowych (takie jak fwprintf, fwscanf, fgetwc, fputwc, fgetws, lub fputws) operuje na pliku, który jest otwarty w trybie tekstowym (domyślnie), dwa rodzaje znaków konwersje mają miejsce:

  • Konwersja Unicode do MBCS lub MBCS-Unicode.Kiedy funkcja strumienia I/O Unicode działa w trybie tekstowym, źródła lub strumień docelowy zakłada się sekwencja znaków wielobajtowych.W związku z tym, funkcje strumienia wejściowego Unicode jest konwersja znaków wielobajtowych szerokości znaków (w przypadku przez wywołanie do mbtowc funkcji).Z tego samego powodu funkcje strumienia wyjściowego Unicode jest konwersja znaków szerokości znaków wielobajtowych (w przypadku przez wywołanie do wctomb funkcji).

  • Znak powrotu karetki – tłumaczenia wysuwu wiersza (CR LF).Tłumaczenie występuje przed MBCS – Konwersja Unicode (na Unicode strumienia wejściowego funkcje) i po Unicode – konwersji MBCS (dla Unicode strumienia danych wyjściowych funkcji).Podczas wprowadzania każdy znak powrotu karetki – kombinacji wysuwu wiersza jest tłumaczona na znak wysuwu wiersza pojedynczy.Podczas produkcji każdy znak wysuwu wiersza jest tłumaczona na powrót karetki – kombinacji wysuwu wiersza.

Jednakże, gdy funkcja strumienia I/O Unicode, działa w trybie binarnym, przyjęto, że plik należy Unicode i bez konwersji tłumaczenie lub znaku CR LF występuje ciągu wejściowego lub wyjściowego.Użyj _setmode (_fileno (stdin), _O_BINARY); instrukcje, aby prawidłowo używać wcin na plik tekstowy UNICODE.

Zobacz też

Informacje

Procedury czasu wykonywania według kategorii

Dane wejściowe i wyjściowe