터보 C를 사용할때는 라이브러리로 콘솔제어를 쉽게 하는 함수들이 존재하였다. MS의 콘솔을 배제하는 정책 때문인지 함수는 존재하지만, 불편한 인터페이스를 그대로 유지하고 있는데, 이를 살작 추상화 시키는 간단한 소스들이다.
util.h ¶
~cpp #ifndef _UTIL_H_ #define _UTIL_H_ #include <windows.h> #include <stdio.h> // n/1000초만큼 시간을 실행을 중지한다. #define delay(n) Sleep(n) // 난수 발생기 초기화 #define randomize() srand((unsigned)time(NULL)) //0~n까지의 난수 발생 #define random(n) (rand() % (n)) //원형 void cls(); void gotoxy(int x, int y); int wherex(); int wherey(); #endif
util.cpp ¶
~cpp #include "util.h" // 화면을 모두 지운다. void cls() { system("cls"); } // 커서를 x,y좌표로 이동시킨다. void gotoxy(int x, int y) { COORD Cur; Cur.X=x; Cur.Y=y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),Cur); } // 커서의 x 좌표를 조사한다. int wherex() { CONSOLE_SCREEN_BUFFER_INFO BufInfo; GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&BufInfo); return BufInfo.dwCursorPosition.X; } // 커서의 y좌표를 조사한다. int wherey() { CONSOLE_SCREEN_BUFFER_INFO BufInfo; GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&BufInfo); return BufInfo.dwCursorPosition.Y; }