raw() vs cbreak()raw():禁止行緩衝,控制字元(Ctrl+Z、Ctrl+C 等)直接傳給程式處理,不產生終端信號cbreak():同樣禁止行緩衝,但控制字元會產生終端信號echo() / noecho()控制鍵盤輸入字元是否在終端回顯。noecho() 常用於密碼輸入等場景。
keypad()啟用功能鍵(F1~F12、方向鍵等)支援,傳入 TRUE 啟用。
initscr()螢幕初始化並進入 curses 模式,必須在其他 curses 函數之前呼叫。回傳標準螢幕視窗指標 stdscr。
#include
int main() {
initscr(); // 初始化
raw(); // 禁止行緩衝
noecho(); // 關閉回顯
keypad(stdscr, TRUE); // 啟用功能鍵
// 程式邏輯...
endwin(); // 結束,恢復終端狀態
return 0;
}
注意:程式結束前必須呼叫 endwin() 恢復終端原始狀態,否則終端可能處於異常狀態。