c언어 ms-dos 문자 색깔, 배경 색깔, 커서 위치 변경(gotoxy, settextcolor, getcolor, getbgcolor)
ms-dos에서
문자, 배경색 바꾸기
커서 위치 변경
헤더파일 windows.h 를 찾지 못하는 경우
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include
위치에 windows.h 가 있는지 확인하고 환경변수에 추가.
소스)
#include <stdio.h>
#include <windows.h>
void gotoxy(int, int);
void settextcolor(int, int);
int getcolor();
int getbgcolor();
int main()
{
int color;
int bgcolor;
color = getcolor();
bgcolor = getbgcolor();
gotoxy(5, 5);
settextcolor(10, 0);
printf("hello\n");
gotoxy(5, 6);
settextcolor(12, 0);
printf("hello\n");
settextcolor(color, bgcolor);
return 0;
}
// 커서 위치 변경
void gotoxy(int x, int y)
{
COORD Pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),Pos);
}
// 문자색, 배경색 변경.
void settextcolor(int color, int bgcolor)
{
color &= 0xF;
bgcolor &=0xF;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), (bgcolor<<4|color));
}
// 문자색 얻기
int getcolor()
{
CONSOLE_SCREEN_BUFFER_INFO info;
int color;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
color = info.wAttributes & 0xf;
return color;
}
// 배경색 얻기
int getbgcolor()
{
CONSOLE_SCREEN_BUFFER_INFO info;
int color;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
color = (info.wAttributes & 0xf0) >> 4;
return color;
}