Ncurses和实时(用C,unix实现)

Sil*_*rol 5 c ncurses time.h

我正在尝试使用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)

我的问题是,只有当我按下一个键时,时间才会刷新.这是一种无需按键即可刷新时间的方法(并在同一时间实现)

par*_*ydr 5

您可以使用以下几个功能:

  1. 节点
  2. 暂停

int nodelay(WINDOW *win, bool bf);

设置 bf true 使 getch() 非阻塞

无效超时(整数延迟);

延迟以毫秒为单位,因此如果将其设置为 1000,则 getch 将在一秒后超时。

在这两种情况下,如果没有输入,getch 将返回 ERR。