이번에 사용하는건 간단한 키보드 입력 인식 및 처리 방법이다.
Hexa Code Editor를 TUI 형태로 처리 하기 위해서 getch()을 이용했다. 1
윗 방법은 conio.h로 콘솔 입출력에서 수정하는 방법이다.
Windows.h에서는 또 다른 방법으로 처리하는 방법이 있다.
이것의 예로는 GetKeyboardState 혹은 GetAsyncKeyState을 이용해서 처리한다. 2
이 방법은 가상 키 처리이기 때문에, 콘솔 입출력이 아닌, Windows에서 제공하는 방법을 사용하면 된다.
콘솔로 처리하고 싶어서, 일단, 콘솔 입출력으로 구현했다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <conio.h> int main() { COORD coord; char keys = 0; int a = 1; short x=0,y=0; while(a){ keys=getch(); switch(keys){ case 'a': case 'A': if(x>0) x=x-1; break; case 'd': case 'D' : if(x<10) x=x+1; break; case 's': case 'S': if(y<10) y=y+1; break; case 'w': case 'W': if(y>0) y=y-1; break; case 'c': case 'C': a=0; break; default: break; } coord.X=x; coord.Y=y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord); printf("W"); } coord.X = 0; coord.Y = 11; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord); printf("Hello world!\n"); return 0; } | cs |
다른 방법으로 앞서 설명한, 가상 키를 입력 받아서 처리하는 방법을 사용해도 된다.
윗 방법에다가 Hexa Code Editor의 출력 부분을 설정하면, 완성하면, TUI형태의 편집기가 완성된다.
- 참조 : http://luyin.tistory.com/180(2015-11-22) [본문으로]
- 참조 : https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms646301(v=vs.85).aspx(2015-11-22) [본문으로]
'연습' 카테고리의 다른 글
Hello World를 어셈블리어로 변환한 결과. (0) | 2015.11.26 |
---|---|
간단한 프로그래밍 -자기 자신 복제하는 프로그램 만들기- (0) | 2015.11.25 |
Hexa Code Editor 만들기 -Windows에서 DOS 커서 이동.- (0) | 2015.11.23 |
Hexa Code Editor 만들기 -이진 파일 출력.- (0) | 2015.11.22 |
CodeBlocks 설치 및 설정하기. (0) | 2015.11.17 |