화면 처리 함수
Visual C++에는 Turbo - C에서 사용할 수 있는 화면 처리 함수가 정의되어 있지 않습니다.
이런 이유로 함수를 정의해서 이용해야 합니다.
Turbo ? C에서는 conio.h를 인클루드 시켜 바로 사용하면 됩니다.
gotoxy(int x, int y): x, y 좌표로 커서 이동
wherex(): 현재 커서의 x좌표 리턴
wherey(): 현재 커서의 y좌표 리턴
함수를 아래와 같이 정의한 후 windows.h를 인클루드 시키면 됩니다.
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;
}
예제23) 커서를 이동시킨 후 x 좌표와 y좌표를 출력하는 프로그램
#include <stdio.h>
#include <windows.h>
void gotoxy(int x, int y)
{
COORD Cur;
Cur.X=x;
Cur.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),Cur);
}
int wherex()
{
CONSOLE_SCREEN_BUFFER_INFO BufInfo;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&BufInfo);
return BufInfo.dwCursorPosition.X;
}
int wherey()
{
CONSOLE_SCREEN_BUFFER_INFO BufInfo;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&BufInfo);
return BufInfo.dwCursorPosition.Y;
}
int main()
{
int x, y;
gotoxy(30, 10);
x = wherex();
y = wherey();
printf("x좌표:%d y좌표:%d\n",x,y);
return 0;
}
'Development > C/C++' 카테고리의 다른 글
[general error c101008a: Failed to save the updated manifest to the file 오류해결법] (0) | 2011.11.03 |
---|---|
[winsock을 이용한 파일 보내기(C++) 소스] (0) | 2011.11.02 |
[시스템 함수(exit, system)] (0) | 2011.11.02 |
[시간 관련 함수(time, ctime, clock 등)] (0) | 2011.11.02 |
[숫자와 문자열 변환 함수(itoa, atoi, atol, atof, strtol)] (0) | 2011.11.02 |