High-Level 控制台 I/O

高级 I/O 函数提供了一种从控制台输入读取字符流或将字符流写入控制台输出的简单方法。 高级读取作从控制台的输入缓冲区获取输入字符,并将其存储在指定的缓冲区中。 高级写入作采用指定缓冲区中的字符,并将其写入当前光标位置的屏幕缓冲区,并在写入每个字符时推进光标。

高级 I/O 提供 ReadFileWriteFile 函数与 ReadConsoleWriteConsole 函数之间的选择。 它们相同,但两个重要差异除外。 控制台函数支持通过每个函数的 A 和 W 变体使用 Unicode 字符或 ANSI 字符集;文件 I/O 函数不支持 Unicode,除非使用之前在 SetConsoleCP 和 SetConsoleOutputCP 函数上使用常量设置 CP_UTF8 UTF-8。 此外,文件 I/O 函数可用于访问文件、管道和串行通信设备;控制台函数只能与控制台句柄一起使用。 如果应用程序依赖于可能已重定向的标准句柄,则此区别非常重要。

使用任一高级函数集时,应用程序可以控制文本和背景颜色,这些颜色用于显示随后写入屏幕缓冲区的字符,首选机制是通过 虚拟终端序列。 应用程序还可以使用影响高级控制台 I/O 的控制台模式启用或禁用以下属性:

  • 将键盘输入回显到活动屏幕缓冲区
  • 行输入,在按下 ENTER 键之前,读取作不会返回
  • 自动处理键盘输入以处理回车、CTRL+C 和其他输入详细信息
  • 自动处理输出以处理换行、回车符、回车符和其他输出详细信息

有关详细信息,请参阅以下主题: