0

我正在尝试向使用 ncurses 创建的终端应用程序添加一些细节。

该应用程序类似于带有超时的测验......如果用户浪费太多时间,则会发生超时并清理屏幕。

现在的问题是:如何显示用户在超时之前插入的文本,并根据需要进行编辑/重新编辑?

例子:

问:你觉得快乐吗?(正确答案是的,我感到很幸福)

A:Yes, I fe (TIMEOUT, clean the screen, question is again but no "Yes, I fe" is printed)。

我不知道是否有可能将其添加到标准输入缓冲区或行缓冲区...

想法...

非常感谢

4

1 回答 1

0

你可以这样做:

  • 通过调用禁用阻止键盘读取nodelay(stdscr, TRUE);
  • 在一个循环中,检查一个键是否被按下getch()并检查它是否返回一个值> 0
    • 如果是,照常处理密钥
    • 否则睡眠几微秒(没有忙等待!)使用usleep()并检查超时;如果发生超时,则处理它
于 2012-10-03T22:19:13.323 回答