gotoxy() 함수
printf()와 같은 함수를 사용하여 화면에 출력할 때 맨 앞이 아닌 내가 원하는 특정 위치에 출력을 하고 싶을 때 사용하는 함수가 gotoxy() 함수이다.
gotoxy() 함수는 어디에 따로 정의되어 있는 함수가 아니기 때문에 사용자가 직접 정의하여 사용하면 된다.
함수의 형태는 다음과 같다.
void gotoxy(int x, int y)
{
COORD Pos;
Pos.X = x;
Pos.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
기본 모양은 위와 같으며 함수의 이름이나 내용은 본인 마음대로 표현하면 된다.
다만 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos) 은 반드시 호출해줘야 한다.
gotoxy() 함수는 이 함수를 통해 위치를 지정할 수 있다.
Header 파일
gotoxy() 함수 안에 있는 SetConsoleCursorPosition() 함수를 사용하기 위해서는 <Windows.h>를 include 하면 된다.
실제로는 <WinCon.h> header에 정의되어 있지만 <Windows.h> header에서 <WInCon.h>를 include 하고 있기 때문에 <Windows.h>만 include 해서 사용하면 된다.
GetStdHandle()
이 함수는 실제 핸들을 반환하는 함수이며 그 안에 파라미터로 종류를 정해주면 핸들 값을 반환한다.
인자로 STD_OUTPUT_HANDLE를 주면 표준콘솔출력의 핸들을 반환해 준다.
SetConsoleCursorPosition()
이 함수는 첫 번째 인자로 핸들 값을 주고 두 번째 인자로 위치 값을 주면 정해진 위치로 커서가 이동한다.
사용법
미리 정의한 gotoxy() 함수를 사용하여 커서의 위치를 지정하고 printf()와 같은 출력 함수를 사용하면 된다.
void gotoxy(int x, int y);
int main()
{
gotoxy(20, 20);
printf("안녕하세요 \n");
return 0;
}
void gotoxy(int x, int y)
{
COORD Pos;
Pos.X = x;
Pos.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
프로그램을 실행하면 다음과 같은 결과를 얻을 수 있다.
출처 : http://blog.naver.com/PostView.nhn?blogId=sharonichoya&logNo=220873844942
'C' 카테고리의 다른 글
[C]변수 const (0) | 2018.01.11 |
---|---|
[C]kbhit(), getch(), 방향키입력 (0) | 2018.01.09 |
[C/C++][함수]반환형 (0) | 2018.01.08 |
[C][2차원배열]달팽이 배열 (0) | 2018.01.02 |
[C][2차원 배열]홀수 마방진 (0) | 2018.01.02 |