gpt4 book ai didi

c++ - 清除键盘缓冲区

转载 作者:太空狗 更新时间:2023-10-29 11:37:32 25 4
gpt4 key购买 nike

在函数 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;
}

编辑:我找到了解决方法,但我仍在寻找清除缓冲区的解决方案。

最佳答案

有一个函数就是为了这个目的:flushinp()

http://pubs.opengroup.org/onlinepubs/007908799/xcurses/flushinp.html

关于c++ - 清除键盘缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24365942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com