读者:怎样知道有未读的字符, 如果有, 有多少?如果没有字符, 怎样使读入不阻断?
阿一:这个问题也是完全和操作系统有关。某些版本的 curses 函数库有 nodelay() 的函数。根据所用系统的不同, 也许你可以使用 “不阻断输入输出 (nonblocking I/O)”, 或者系统函数 select 或 poll。
读者:怎样显示一个百分比或 “转动的短棒” 的进展表示器?
阿一:这个简单的事情, 你可以做到相当的可移植。输出字符 ’r’ 通常可以得到一 个回车而没有换行, 这样你就可以复写当前行。字符 ’b’ 代表退格, 通常会使光 标左移一格。记住要调用 fflush()。
读者:怎样清屏、输出彩色文本、移动光标到指定位置?
阿一:这些功能跟你所用的终端类型有关。你需要使用termcap, terminfo 或 curses 类的函数库, 或者系统提供的特殊函数。在 MS-DOS 系统下, 有两 个函数可以使用 clrscr() 和 gotoxy()。