输入和输出方法

控制台 I/O 有两种不同的方法,其选择取决于应用程序所需的灵活性和控制。 高级方法支持简单的字符流 I/O,但它限制了对控制台的输入屏幕缓冲区的访问。 低级方法要求开发人员编写更多代码并在更多函数之间进行选择,但它也为应用程序提供了更大的灵活性。

注意

不建议采用低级方法进行新的和正在进行的开发。 鼓励需要低级控制台 I/O 函数功能的应用程序使用虚拟终端序列,并浏览有关经典函数与虚拟终端生态系统蓝图的文档。

应用程序可以使用文件 I/O 函数 ReadFileWriteFile 以及控制台函数 ReadConsoleWriteConsole 进行高级 I/O,从而间接访问控制台的输入和屏幕缓冲区。 高级输入函数会筛选并处理控制台输入缓冲区中的数据,将输入作为字符流返回,并丢弃鼠标和缓冲区重设大小输入。 同样,高级输出函数会编写在屏幕缓冲区的当前游标位置显示的字符流。 应用程序通过设置控制台的 I/O 模式来控制这些函数的工作方式。

低级 I/O 函数提供对控制台输入和屏幕缓冲区的直接访问,使应用程序能够访问鼠标和缓冲区重设大小输入事件以及键盘事件的扩展信息。 低级输出函数使应用程序能够读取或写入屏幕缓冲区中指定数量的连续字符单元,或者读取或写入位于屏幕缓冲区中指定位置的矩形字符单元块。 控制台的输入模式通过让应用程序确定是否将鼠标和缓冲区重设大小事件放置在输入缓冲区中来影响低级输入。 控制台的输出模式对低级输出没有影响。

高级和低级 I/O 方法并不互斥,应用程序可以使用这些函数的任意组合。 但是,应用程序通常只使用一种方法或另一种方法,建议专注于一个特定范例,以获得最佳结果。

提示

理想的前瞻性应用程序将专注于高级方法,并在必要时通过高级 I/O 方法增加虚拟终端序列的进一步需求,从而完全避免使用低级 I/O 函数。

以下主题介绍控制台模式以及高级和低级 I/O 函数。