Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 运行终端程序时阻止终端输入_C++_Unix_Terminal - Fatal编程技术网

C++ 运行终端程序时阻止终端输入

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++没有办法。也许您应该使用

当我在终端程序运行时按enter键时,会添加一个新行。如何禁用此功能?我不想使用ncurses。我在Ubuntu上。

根据n.m的提示,我发现并提出了以下建议:

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