这是我发现的kbhit实现,但由于某种原因,它只是等待一个键被按下,而不是返回除0之外的结果。它并不真正起到kbhit的作用...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总是等待一个关键笔划。
为什么你不使用kbhit实现我向你发送链接以回答你以前的问题? – 2010-10-19 18:44:25