2014-01-20 4 views
2

터미널 프로그램이 실행되는 동안 Enter 키를 누르면 새 라인이 추가됩니다. 이 기능을 어떻게 비활성화 할 수 있습니까? 나는 ncurses를 사용하고 싶지 않다. 나는 우분투에있다.터미널 프로그램을 실행하는 동안 터미널 터미널 입력을 차단하십시오.

+6

사용자의 손을 차단하십시오! –

+0

표준 C++에는 방법이 없다고 생각합니다. 어쩌면 당신은 리눅스의 API를 사용해야합니다 – ikh

+1

터미널에서 로컬 에코를 해제해야합니다. –

답변

1

n.m의 힌트까지 따라, 나는 this를 발견하고이 함께했다 :

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

이 터미널에 대한 모든 입력을 차단하는 것 같다.

+0

* 아마도 비표준 모드 또는 "원시"모드를 설정하고 정상적인 모든 (제어가 아닌) 문자를 사용자가 직접 출력하려고합니다. 'man termios '를 보라. –

+0

예, 이미 저도 그렇게 생각합니다. – gartenriese