这是我找到的kbhit实现,但由于某种原因,它只是等待按下一个键而不是返回除0之外的一些结果。它实际上不起作为kbhit ......
int kbhit(void)
{
struct timeval tv;
fd_set read_fd;
tv.tv_sec=0;
tv.tv_usec=0;
FD_ZERO(&read_fd);
FD_SET(0,&read_fd);
if(select(1, &read_fd, NULL, NULL, &tv) == -1)
return 0;
if(FD_ISSET(0,&read_fd))
return 1;
return 0;
}
任何人都可以解释我的问题是什么吗? 我正在使用Linux,顺便说一句。
我认为你可能误解了我,并认为它在击键后实际上会返回非零值。 我的问题是kbhit总是等待击键。
答案 0 :(得分:0)