select()和getch()如何每秒调用函数并监听键盘动作

时间:2020-12-18 16:16:53
void drawBlock(WINDOW *new_win_ptr)
{
wclear(new_win_ptr);//先清除先前的block
box(new_win_ptr,0,0);//画边框
int i,j;
//绘地图
for(i=0;i<19;i++)
for(j=0;j<19;j++)
{
if(map[i][j]==1)
mvwaddch(new_win_ptr,i,j,'#');
}


int main(){
while(1)
    {
timeout.tv_sec=1;
timeout.tv_usec=0;
FD_ZERO(&readfd);
FD_SET(keyboard,&readfd);
ret=select(keyboard+1,&readfd,NULL,NULL,&timeout);
//printf("hello\n");
drawBlock(new_win_ptr);
getch();
}}
1.为什么调用drawBlock()后一直处于等待键盘输入的暂停状态,而printf("hello")却每过几秒调用成功
2.我目的是想实现每过1秒调用drawBlock()函数,并监听键盘的输入,有输入则进行相应操作。

1 个解决方案

#1


sleep+kbhit

#1


sleep+kbhit