-
[C/C++] 키보드 입력 받기. getch, kbhit 함수프로그래밍 공부/C, C++ 2022. 11. 4. 21:36728x90
콘솔 프로젝트를 하면서 고민은 cin이나 scanf를 통해서 방향키를 입력받을 수 없다는 점이었다.
이를 해결하기 위한 내용을 찾아보니 역시나 해당하는 내용이 있었다.
getch() 함수를 이용하면 아스키(ASCII) 코드로 데이터를 받아와 특수 키도 입력이 가능하다.
아스키 코드 표. #include <conio.h> //이 헤더가 있어야 getch()와 kbhit()을 이용할 수 있다. //자주 사용할 예정인 키들의 아스키코드를 매크로로 지정해둔다. #define UP 72 #define DOWN 80 #define LEFT 75 #define RIGHT 77 #define ENTER 13 #define ESC 27 void main() { char c; while(true) { if (_kbhit) //키보드 입력을 확인한다. true/false { c = _getch(); //방향키 입력시 224 00이 들어오게 된다. 앞의 값 224를 없앤다. } if (c == -32) //-32로 입력되면 { c = _getch(); //상하좌우를 판별한다. switch (c) { case LEFT: //왼쪽 화살표 입력 시 실행될 코드 break; case RIGHT: break; case UP: break; case DOWN: break; default: break; } } else if (c == ENTER) //-32가 아니고, 엔터가 입력되면 { //실행할 코드 } } }
728x90'프로그래밍 공부 > C, C++' 카테고리의 다른 글
[C/C++] 콘솔(cmd) 화면 세팅 (0) 2022.11.04 [C/C++] 커서의 좌표값 알아내기, 좌표값으로 커서 보내기 (0) 2022.11.04 [C/C++] 템플릿 (0) 2022.11.04 [C/C++] STL 맵 (0) 2022.11.04 [C/C++] for문의 안전도와 for each문, auto 키워드 (0) 2022.11.04