C/문법
[C] 콘솔창 위치 변경법
Rix
2021. 9. 24. 10:45
콘솔창 출력 위치 변경하는 방법
1. <windows.h> 헤더파일 추가
--> 이 파일에는 윈도우 개발자들이 필요한 모든 매크로와 함수들을 모아놨다.
콘솔의 위치를 지정할 수 있는 함수도 포함하고 있음.
2. GotoXY라는 이름으로 작성한다. (널리 퍼진 함수 형태이다)
void GotoXY(int x, int y)
{
COORD Pos;
Pos.X = x;
Pos.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
- COORD
실제 형태는 다음과 같다.
typedef struct _COORD {
SHORT X;
SHORT Y;
} COORD, *PCOORD;
COORD라는 구조체는 헤더파일에 선언되어 있는 x, y 값을 저장한다.
- SetConsoleCursorPosition
BOOL WINAPI SetConsoleCursorPosition(
_In_ HANDLE hConsoleOutput,
_In_ COORD dwCursorPosition
);
콘솔의 핸들값과 좌표값을 받아서 해당 위치로 콘솔의 커서가 이동시킨다.
*콘솔의 핸들값은 콘솔이 가지는 ID라고 생각하면 된다.
- GetStdHandle(STD_OUTPUT_HANDLE)
콘솔 ID를 구하기 위해 사용된다.
GetStdHandle(STD_OUTPUT_HANDLE)
사용예시)
#include <windows.h>
#include <stdio.h>
void GotoXY(int x, int y)
{
COORD Pos;
Pos.X = x;
Pos.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
int main(void)
{
GotoXY(40, 5);
printf("Hello, World!");
printf("\n\n");
return 0;
}