bool kbhit(void)
{
// function without the 4 lines of code below will not work
// but they also screw up the console
initscr();
cbreak();
noecho();
nodelay(stdscr, TRUE);
scrollok(stdscr, TRUE);
int ch = getch();
if (ch != ERR) {
ungetch(ch);
refresh();
return true;
} else {
refresh();
return false;
}
}
由于ncurses没有kbhit,因此我发现了上面的功能。但是他们搞砸了控制台。这是我尝试打印以下内容时发生的情况: 查看图片
答案 0 :(得分:1)
这就是所谓的“楼梯”。
mount
的示例开始了诅咒,但没有退出诅咒(使用 shallowMount
)。如果您的程序尝试使用诸如 kbhit
之类的非诅咒调用,则终端仍将处于原始模式-退出shell后,该模式将继续存在(除非重置终端)。