본문 바로가기
[ C++ ]/- C++ 실습연습

C++ [방향키입력, 커서이동]

by MRG 2022. 2. 22.
728x90
반응형

▣ 안녕하세요. 이번장에서는 방향키를 눌러 문자를 이동시키는 코드를 공부해보도록 하겠습니다.

 

▣ 우선 방향키를 입력받는 코드를 작성해보겠습니다. 

#incldue <conio.h>를 선언해주세요. 

이건 _getch()를 사용하기 위함입니다. 

scanf()와 다르게 입력 버퍼에 저장하지 않고 바로 아스키코드로 반환해주는 함수입니다. 

그리고 엔터를 누를 때까지 기다리지 않습니다. 

이렇게 코드를 작성하고 방향키를 누르게 되면 224 72, 224 80, 224 77, 224 75 이렇게 

두 가지 숫자들이 출력되는 걸 확인할 수 있습니다.

방향키는 복합키워드를 가지고 있기 때문에 두 가지 숫자를 조합해서 반환합니다. 

그럼 여기서 우리가 알 수 있는건, 

방향키를 입력했을때에는 공통적으로 224를 준다라는 사실입니다.

 

728x90

 

 

 

▣ 그럼 이걸 이용해서 방향키를 구분하는 코드를 작성하겠습니다. 

첫 번째 input에 값에는 224를 저장하고 조건문으로 비교해서 방향키를 입력했는지에 대한 

조건을 검사하고 조건이 맞으면 방향키일 경우이기 때문에 input에 한 번 더 getch() 함수를 값을 저장해줍니다.

그럼 224를 제외한 나머지 아스키코드 숫자가 들어가기 때문에 

방향키에 대한 구분을 할 수 있습니다. 

 

▣ 위에 있는 조건문에 숫자처럼 72, 80, 77, 75 조건을 만들게 되면 나중에 코드를 

보기가 어렵게 됩니다. 그렇기 때문에 상수로 숫자를 지정해줍니다. 

 

▣ 그리고 이렇게 지정을 하면 더 코드를 보기가 편리합니다. 

 

 

▣ 이제 커서를 움직이는 코드를 작성해보겠습니다.

먼저 <Windows.h>를 선언해주세요.

 

▣ 그리고 이렇게 커서를 움직이는 함수를 작성해주세요.

gotoXY()함수에 대한 자세한 설명은 C언어 실습을 참고해주세요.

 

▣ 그리고 gotoXY를 맨 위에 선언해주시고,

아까 만들었던 while문안에서 system(), gotoXY(), @를 출력하는 코드를 넣습니다.

이건 @를 움직일때마다 그 자리에 남아있는 @를 지우고 다시 새로 그린다고 이해하시면 됩니다.

 

▣ 그리고 이렇게 조건문에 x, y을 더하고 뺴고에 대한 코드를 추가해주세요.

그런 다음에 if(x < 1) 조건문을 넣어줍니다.

x,y 0,0에 값을 넘지 않기 위함입니다. 

 

▣ 코드를 완성하고 방향키를 눌러 움직이면 이렇게 문자가 움직이는 걸 확인할 수 있습니다. 

 

728x90
반응형

댓글