2012-10-03 165 views
0

我想一些細節添加到我與ncurses的創建終端應用。超時NCURSES和緩衝區

該應用程序是一樣的東西與超時測驗......如果用戶浪費了太多的時間,發生超時和清潔屏幕。

現在的問題:我怎麼能證明用戶已超時,如果想編輯/重新編輯之前插入的文本?

例如:

問:你覺得快樂嗎? (正確答案是的,我感到高興)

答:是的,我FE(TIMEOUT,乾淨的畫面,問題再次打印,但不打印「是的,我FE」)。

我不知道是否有任何可能性,將其添加到標準輸入緩衝區或線緩衝器...

想法......

非常感謝

回答

0

你可以做到這一點這樣的:

  • 禁用禁止鍵盤在一個循環中調用nodelay(stdscr, TRUE);
  • 讀取,檢查是否有關鍵是p使用getch()和檢查,如果返回> 0
    • 如果是一個值,過程中的關鍵照常
    • 其他使用usleep()睡幾微秒(!沒有忙等待),並檢查是否有超時ressed;如果發生超時,處理它