我创建了一个使用AppKit读取系统范围击键的ncurses程序。要在运行程序时清除在命令行上累积的文本的墙,我在退出程序之前执行这一行代码。C禁用命令行输入
while((c = getch()) != '\n' && c != EOF) {}
我的问题是如果有一个更有效的方法来解决这个问题。例如,在程序执行时禁用命令行输入。
编辑:
我跑了一些测试,我的问题似乎根植于usleep而不是ncurses的或AppKit的。这里有一个例子:
#include <unistd.h>
int main() {
usleep(5000000);
return 0;
}
当程序运行时,终端中的输入应该在程序退出时被丢弃。应该没有必要明确地做到这一点。 –
对我来说,这是当我退出(0)程序的命令行: 的bash-4.4 $ ddddddaaaaaaaaaaawwwwwwwwwwdddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaax –
听起来像一个XY问题。目前还不清楚你想完成什么。提供一个[mcve]的细节。 – Olaf