#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void setColor(int color, int bgcolor);
void setFontColor(int color);
void setBgColor(int bgcolor);
void resetFontColor();
void resetBgColor();
enum ConsolColor{
CC_BLACK, //0번
CC_DARKBLUE, //1번
CC_DARKGREEN, //2번
CC_DARKCYAN, //3번
CC_DARKRED, //4번
CC_DARKMAGENTA, //5번
CC_DARKYELLOW, //6번
CC_GRAY, //7번
CC_DARKGRAY, //8번
CC_BLUE, //9번
CC_GREEN, //10번
CC_CYAN, //11번
CC_RED, //12번
CC_MAGENTA, //13번
CC_YELLOW, //14번
CC_WHITE, //15번
CC_LIGHTGRAY = 7,
CC_ORIGINAL = 7,
CC_ORIGINALFONT = 7,
CC_ORIGINALBG = 0
};
int main(){
//색깔넣은 hello world 출력하기
setFontColor(9); //9번은 파란색. 파란색으로 글씨 설정
printf("Hello ");
Sleep(1000); //1초 쉬기
setFontColor(7); //7번은 회색. 회색으로 글씨 설정 바꾸기
printf("World\n");
setBgColor(15); //15번은 하얀색. 하얀색으로 배경색 설정하기
printf("WoW!!\n");
return 0;
}
//텍스트, 배경색 모두 변경하는 함수
void setColor(int color, int bgcolor){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), ((bgcolor & 0xf) << 4) | (color & 0xf));
}
//텍스트 색상 변경하는 함수
void setFontColor(int color){
CONSOLE_SCREEN_BUFFER_INFO info;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), (info.wAttributes & 0xf0) | (color & 0xf));
}
//배경 색상 변경하는 함수
void setBgColor(int bgcolor){
CONSOLE_SCREEN_BUFFER_INFO info;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), ((bgcolor & 0xf) << 4) | (info.wAttributes & 0xf));
}
//글씨 색깔 리셋하는 함수
void resetFontColor(){
setFontColor(7);
}
//배경 색상 리셋하는 함수
void resetBgColor(){
setBgColor(0);
}