在函数中,boo()
我按一个键,然后doSthTimeConsuming()
调用该函数。
现在我在按下键doSthTimeConsuming()
。问题是密钥被缓冲,并且在下一次迭代boo()
中将已经有一个输入。
我可以先清除或禁用键盘缓冲boo()
吗?
void boo()
{
while(1)
{
c = getch();
switch(c)
...
break;
}
}
void doSthTimeConsuming()
{
usleep(1000000);
}
int main()
{
WINDOW* main_win = initscr();
cbreak();
noecho();
keypad(main_win, TRUE);
while(1)
{
boo();
doSthTimeConsuming();
}
return 0;
}
EDIT:
我找到了解决方法,但是我仍在寻找清除缓冲区的解决方案。
为此有一个功能: flushinp()
http://pubs.opengroup.org/onlinepubs/007908799/xcurses/flushinp.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句