2014-11-18 2 views
0

나는 C++ 응용 프로그램을 작성 중이며 화살표 키를 눌렀는지 읽어야합니다. Windows에서만 작동하는 일부 기능을 발견했습니다.C++로 화살표 키 읽기

+0

Xcode 또는 앱에서 화살표 키를 잡으시겠습니까? – rckoenes

+0

메소드에서 화살표 키의 입력을 사용해야합니다. – torhoehn

+0

그러면 Xcode와 아무 관련이 없습니다. 커맨드 라인 앱입니까, 코코아를 통해 UI를 사용하고 있습니까? – rckoenes

답변

1

잘못된 질문을하기 때문에 이러한 문제가 발생합니다. 응용 프로그램이 명령 줄 도구이고 터미널에서 액세스 할 수있는 경우 터미널이 응용 프로그램이 실행되는 컴퓨터에서 멀리 떨어져 있고 더 중요한 위치에 있기 때문에 현재 어떤 키가 눌려 있는지 알 수없는 것보다 터미널이 텍스트 탐색을 위해 화살표 키를 사용할 수 있기 때문에 터미널이 화살표 키를 누를 이유가 없습니다.

그래서 키 누름을 보내는 방법을 검색 할 수 있습니다. 모든 터미널이이 기능을 지원하는 것은 아니지만, 현대 OS의 대부분의 현대 터미널은 그렇게 생각합니다.

로컬로 실행하고 연결되어있는 키보드에서 제어한다고 가정하는 gui 응용 프로그램이있는 경우 gui 툴킷 설명서를 검색해야합니다. 그냥 많은 상황에서 아무 의미가없는 질문 때문에 (Qt, wxWidgetsxorg 원시, 윈도우 API 등)

그래서이 문제에 대한 단지 네이티브 C++ 해결책이 없습니다.

ncurses과 같은 콘솔 라이브러리 또는 Qt과 같은 GUI 툴킷을 사용하거나 특정 상황에서 네이티브 솔루션을 검색 할 수 있지만이 마지막 방법이 다른 컴퓨터에서 추가 코드없이 작동 할 것으로 기대하지는 마십시오.

또는 다른 라이브러리를 검색하면됩니다.

+1

'vi '프로그램과'vt-100' 터미널은 21 세기에 * modern *으로 묘사 될 수 있다고 상상조차하지 못했습니다 :-) –

1

당신이 Windows 용 자료를 찾았다 고 말하면서, 나는 당신이 Linux-Unix 방식을 찾고 있다고 가정합니다. 나 같은 옛 공룡들은 우리가 단지 콘솔을 가지고있을 때를 기억한다 (키보드와 80x25 디스플레이 만). 그리고 초기에는 키패드에서 전송 된 키를 해석하고 거의 모든 터미널의 화면에 커서를 놓는 저수준 라이브러리가 있었으며 상위 수준의 라이브러리는 화면을 (텍스트 전용) GUI로 사용했습니다.

상위 수준 라이브러리의 경우 curses 또는 ncurses, 하위 수준 기능의 경우 terminfo를 찾아야합니다.