C++ 运行终端程序时阻止终端输入
当我在终端程序运行时按enter键时,会添加一个新行。如何禁用此功能?我不想使用ncurses。我在Ubuntu上。根据n.m的提示,我发现并提出了以下建议:C++ 运行终端程序时阻止终端输入,c++,unix,terminal,C++,Unix,Terminal,当我在终端程序运行时按enter键时,会添加一个新行。如何禁用此功能?我不想使用ncurses。我在Ubuntu上。根据n.m的提示,我发现并提出了以下建议: static struct termios t; tcgetattr( STDIN_FILENO, &t); t.c_lflag &= ~ECHO; tcsetattr( STDIN_FILENO, TCSANOW, &t); 这似乎阻止了对终端的所有输入。切断用户的手?!我认为标准C++没有办法。也许您应该使用
static struct termios t;
tcgetattr( STDIN_FILENO, &t);
t.c_lflag &= ~ECHO;
tcsetattr( STDIN_FILENO, TCSANOW, &t);
这似乎阻止了对终端的所有输入。切断用户的手?!我认为标准C++没有办法。也许您应该使用linux的API。您需要禁用终端上的本地echo。@ikh:我使用ANSI代码来移动光标,这样也可以@n、 m:类似这样的:ttynew.clflag&=~ECHO?你能详细说明一下它的具体功能吗?你可能还想设置非规范模式或“原始”模式,并自己回显所有正常(非控制)字符。请参见
man termios
。