我正在尝试使用C中的ncurses来实现游戏.我必须显示当前时间(时间必须每秒更新)并且我的while循环看起来像这样
while(1)
{
clk = time(NULL);
cur_time = localtime(&clk);
mvprintw(0,1,"%d %d %d",cur_time->tm_hour,cur_time->tm_min,cur_time->tm_sec);
int key = getch()
//other stuff
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,只有当我按下一个键时,时间才会刷新.这是一种无需按键即可刷新时间的方法(并在同一时间实现)
您可以使用以下几个功能:
int nodelay(WINDOW *win, bool bf);
设置 bf true 使 getch() 非阻塞
无效超时(整数延迟);
延迟以毫秒为单位,因此如果将其设置为 1000,则 getch 将在一秒后超时。
在这两种情况下,如果没有输入,getch 将返回 ERR。