中的Unicode文本和二进制模式的流I/O

当 Unicode 流 I/O 实例 (例如 fwprintffwscanffgetwcfputwcfgetwsfputws) 对已在文本模式的文件 (默认值) 下,两个字符进行转换:

  • 为支持 Unicode 或 MBCS 为 Unicode 转换。 当 Unicode 流 I/O 功能在文本模式时运行,源或目标流假定为多字节字符序列。 因此, Unicode 流输入函数转换多字节字符转换为宽字符 (如同通过对 mbtowc 函数的调用)。 出于相同的原因, Unicode 流输出函数将宽字符转换为字节字符 (如同通过对 wctomb 函数的调用)。

  • –回车换行符 (CR-LF) 转换。 此转换在 MBCS – Unicode 转换之前发生 (对于 Unicode 流输入函数) 和在 Unicode 后 – MBCS 翻译 (对于 Unicode 输出流功能)。 在输入过程中,每 –回车换行符组合被转换为单个换行符。 在输出中,每个换行符转换为 –回车换行符组合。

但是,在中,当 Unicode 流 I/O 功能在二进制模式时运行,文档假定是 Unicode,在输入或输出句点,因此, CR-LF 转换或字符转换不会发生。 使用 _setmode (_fileno (stdin), _O_BINARY);命令以正确使用在 UNICODE 文本文件的 wcin。

请参见

参考

运行时实例按类别

输入和输出