Win32 API提供了两种非常不同的控制台I / O方法,其选择取决于应用程序需要多大的灵活性和控制。高级方法可实现简单的字符流I / O,但限制了对控制台输入和屏幕缓冲区的访问。低级方法要求开发人员编写更多的代码并在更大范围的功能之间进行选择,但它也为应用程序提供了更大的灵活性。
对于提供对控制台输入和屏幕缓冲区的间接访问的高级I / O,应用程序可以使用文件I / O功能ReadFile和WriteFile以及控制台功能ReadConsole和WriteConsole 。高级输入功能可以过滤和处理控制台输入缓冲区中的数据,以返回输入字符流,丢弃鼠标和缓冲区大小输入。类似地,高级输出函数在屏幕缓冲区中写入当前光标位置显示的字符流。应用程序通过设置控制台的I / O模式来控制这些功能的工作方式。
低级I / O功能可直接访问控制台的输入和屏幕缓冲区,使应用程序能够访问鼠标和缓冲区大小的输入事件以及键盘事件的扩展信息。低级输出功能使应用程序能够从屏幕缓冲区中读取或写入指定数量的连续字符单元,或读取或写入屏幕缓冲区中指定位置的字符单元的矩形块。控制台的输入模式通过使应用程序能够确定鼠标和缓冲区大小调整事件是否放置在输入缓冲区中来影响低级输入。控制台的输出模式对低电平输出没有影响。
高级别和低级别的I / O方法不是相互排斥的,应用程序可以使用这些功能的任意组合。然而,通常,应用程序使用一种方法或另一种方法。
以下部分详细介绍了控制台模式以及高级和低级I / O功能。