【问题标题】:Timeout NCURSES and buffers超时 NCURSES 和缓冲区
【发布时间】:2012-10-07 13:32:54
【问题描述】:

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

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

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

例子:

问:你觉得幸福吗? (正确答案是的,我很高兴)

A:Yes, I fe(超时,清洁屏幕,再次打印问题但没有打印“Yes, I fe”)。

我不知道有没有可能把这个添加到标准输入缓冲区或行缓冲区...

想法...

非常感谢

【问题讨论】:

    标签: ncurses


    【解决方案1】:

    你可以这样做:

    • 通过调用nodelay(stdscr, TRUE);禁用阻止键盘读取
    • 在循环中,使用getch()检查是否按下了某个键并检查它是否返回值>0
      • 如果是,照常处理密钥
      • 否则使用usleep() 休眠几微秒(不忙于等待!)并检查超时;如果发生超时,则处理它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-17
      • 1970-01-01
      • 2011-03-12
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多