テキスト モードとバイナリ モードの Unicode ストリーム入出力
Unicode ストリーム I/O ルーチン (fwprintffwscanffgetwcfputwcfgetwsまたは fputws などのテキスト モード (既定) で開いているファイルを操作する場合2 種類の文字の変換が実行されます :
Unicode と MBCS または MBCS の Unicode 変換。Unicode ストリーム入出力関数がテキスト モードで実行するとソースまたはターゲットのストリームはマルチバイト文字のシーケンスと見なされます。このため、Unicode ストリーム入力関数はマルチバイト文字をワイド文字に変換し、mbtowc 関数を呼び出した場合と同様の効果を得ます。同様の理由で、Unicode ストリーム出力関数は、wctomb 関数が呼び出されたかのように、ワイド文字をマルチバイト文字に変換します。
復帰とライン フィード (CR-LF) に移動します。この変換はUnicode と MBCS の Unicode 変換 (Unicode ストリーム入力関数の場合) および (MBCS の前に変換されます (Unicode ストリームの出力関数の場合)。入力の場合各復帰と改行の組み合わせは一つの改行文字に変換されます。出力時には各改行文字が復帰と改行の組み合わせに変換されます。
ただしUnicode ストリーム入出力関数がバイナリ モードで実行するとファイルは Unicode であると解釈され CR-LF の移動または文字の変換は入力や出力の間に発生しません。_setmode (_fileno (stdin)_O_BINARY;) を使用します。命令正しく UNICODE テキスト ファイルの wcin を使用します。