2014-01-20 118 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