본문 바로가기

C언어/C_지식_정리

[C 언어] 현재 콘솔창의 커서 위치 바꾸기

콘솔창에 출력하고 싶은 위치를 바꾸고 싶다면,

밑에 코드를 이용해 간편하게 위치를 바꿀 수 있다.

gotoxy ex)
#include<stdio.h>
#include<windows.h>

void gotoxy(int x, int y);

int main(void)

{
	printf("Luden0 Blog");
	gotoxy(10, 10);
	printf("Hello Visitor");
	return 0;
}

void gotoxy(int x, int y)

{
	COORD Pos = {x, y};
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}

(실행결과)

대부분 gotoxy라고 명명하고 사용하는데 편의에 따라서 gotoxy가 아닌 다른 이름으로 바꾸고 사용해도 무관하다.


gotoxy의 함수 내부에서는, COORD의 구조체가 있고 Pos를 구조체 변수로 지정해 주었다. Windows.h 헤더파일에 정의되어 있다.

 

COORD structure - Windows Console

Defines the coordinates of a character cell in a console screen buffer.

docs.microsoft.com

그리고 커서 위치를 설정해주는 SetConsoleCursorPosition 함수가 있다.

2개의 인자값을 받는데,

첫번째 인자값은 읽기 접근 권한을 가지고 있는 콘솔 화면 버퍼에 대한 핸들을 필요로 하고,

두번째 인자값은 COORD 의 구조체 변수를 필요로 한다.

 

SetConsoleCursorPosition function - Windows Console

Sets the cursor position in the specified console screen buffer.

docs.microsoft.com