C언어/C언어 예제

[C언어 소스] 광고판 만들기 – 콘솔 배경색, 글자 색 설정

언제나휴일 2022. 5. 27. 10:36
반응형

 

#include <Windows.h>//COORD,SetConsoleCursorPosition,SetConsoleTextAttribute,Sleep
#include<stdio.h>//puts
#include <stdlib.h>//system
#include <conio.h>//_kbhit
void gotoxy(int x, int y)
{
    COORD Pos = { x,y };
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
typedef enum Color Color;
enum Color
{
	BLACK, BLUE, GREEN, JADE, RED, PURPLE, YELLOW, WHITE, GRAY,
	LIGHT_BLUE, LIGHT_GREEN, LIGHT_JADE, LIGHT_RED, LIGHT_PURPLE, LIGHT_YELLOW, LIGHT_WHITE
};

void changecolor(int color)
{
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}
const char* msgs[2] = { "★☆★☆★☆★☆ 광고판 ★☆★☆★☆★☆" ,"☆★☆★☆★☆★ 게임 ☆★☆★☆★☆★" };
Color colors[2] = { RED,LIGHT_BLUE };
void draw_msg(int on_off)
{
	gotoxy(10, 2);//캐럿을 x좌표 10, y좌표 2로 이동
	changecolor(colors[on_off]);//글자색 지정 on_off가 0이면 RED , 1이면 LIGHT_BLUE
	puts(msgs[on_off]);//메시지 출력 on_off값에 따라 msgs[0] 혹은 msgs[1] 출력
	Sleep(300);//0.3초 멈춤
}

int main()
{
	int on_off = 0;
	system("COLOR A8"); //배경색을 녹색(A), 글자색은 흰색(8)로 설정
	while (1)
	{
		if (_kbhit())//키를 누르면
		{
			break;//반복문 탈출하여 프로그램 종료함
		}		
		draw_msg(on_off);//메시지 출력
		on_off = (on_off + 1) % 2;//메시지 번호 토글 0-1-0-1-0-...
	}	
	return 0;
}
반응형