读者:怎样从键盘直接读入字符而不用等 RETURN 键,防止字符 输入时的回显?
阿一:在C语言里没有一个标准且可移植的方法。在标准中跟本就没有提及屏幕和 键盘的概念, 只有基于字符 “流” 的简单输入输出。在某个级别, 与键盘的交互输入一般上都是由系统取得一行的输入才提供给 需要的程序。这给操作系统提供了一个加入行编辑的机会,使得系统地操作具一致性, 而不用每一个程序自己建立。
当用户对输入满意, 并键入RETURN后, 输入行才被提供给需要的程序。即使程序中用了读 入单个字符的函数,第一次调用就会等到完成了一整行的输入 才会返回。这时, 可能有许多字符提供给了程序, 以后的许多调用都会马上返回。当程序想在一个字符输入时马上读入, 所用的方式途径就采决于行处理在输 入流中的位置, 以及如何使之失效。
在一些系统下,程序可以使用一套不同或修改过的操作系统函数来扰过行输入模态。在另 外一些系统下, 操作系统中负责串行输入的部分必须设置为行输入关闭的模态, 这样, 所有以后调用的常用 输入函数就会立即返回输入的字符。