2014-01-20 161 views
2

當我在終端程序運行時按下Enter鍵時,會添加新行。我如何禁用此功能?我不想使用ncurses。我在Ubuntu上。運行終端程序時阻止終端輸入

+6

切斷用戶的手? –

+0

我認爲在標準C++中是沒有辦法的。也許你應該使用linux的API – ikh

+1

你需要在終端上禁用本地回顯。 –

回答

1

跟進牛米的提示,我發現this以及與此想出了:

static struct termios t; 
tcgetattr(STDIN_FILENO, &t); 
t.c_lflag &= ~ECHO; 
tcsetattr(STDIN_FILENO, TCSANOW, &t); 

這似乎阻止所有輸入端。

+0

你*可能*也想設置非規範模式或「原始」模式,並自己迴應所有正常(非控制)字符。見'man termios'。 –

+0

是的,我已經這樣做(我認爲) – gartenriese