高级控制台 I/O

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

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

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

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

有关详情,请参阅以下主题: