2011-09-29 38 views
0

我有一個應用程序,用戶輸入數據並需要使用箭頭鍵可以在屏幕上移動。現在我用的library,但我有一個問題調用系統命令,它是在調用系統命令之後使用curses在unix平臺上檢測C++中的箭頭鍵輸入不起作用

system("more filename); 

我已經能夠調用這個命令之前探測到它們之後檢測箭頭。但之後,即使嘗試再次打開鍵盤後仍然使用

keypad(scrn, TRUE); 

它不起作用。

有什麼建議?謝謝:)

+0

你是否檢查過系統()後終端處於什麼模式?這可能是程序將其置於熟化模式 – PlasmaHH

回答

2

嘗一下這裏的建議是:http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/misc.html#TEMPLEAVE

有些時候,你可能想回去熟模式(法線緩衝模式)暫時。在這種情況下,您首先需要通過調用def_prog_mode()來保存tty模式,然後調用endwin()來結束curses模式。這會讓你處於原來的tty模式。一旦完成,要回到詛咒,請調用reset_prog_mode()。該函數將tty返回到由def_prog_mode()存儲的狀態。然後執行refresh(),然後回到curses模式。