如果可能的话,如何检查输入缓冲区中等待我的输入次数?也就是说,我可以合理地假设,有多少次 getch 会返回某种答案吗?
getch
您应该可以通过设置不超时来间接完成这个操作(例如,使用 nodelay),并称 getch 直到 ERR 返回,然后(按相反顺序)调用 ungetch 恢复 fifo.
nodelay
ERR
ungetch
这不是可移植的(XOpen Curses说只有一个...)。ungetch 可能会有效果),但ncurses有一个 fifo (见 源头),这应该允许最多调用135次getchungetch。
这样做会干扰使用多字节数据序列的函数(如鼠标协议,或函数键匹配),而且不一定能很好地使用UTF-8。