[C++] 콘솔 텍스트에 색상을 적용시키는 2가지 방법

2025. 6. 25. 22:39·C++

1. ANSI 이스케이프 코드 사용

ANSI 이스케이프 코드를 이용해 터미널 출력에 색상을 적용할 수 있다

다음과 같이 코드에 #define 문을 넣어주고 색상을 넣어주고 싶은 텍스트 앞에 색상을 입력해 주면 된다

#include <iostream>
#define RESET   "\x1b[0m"
#define BLACK   "\x1b[30m"
#define RED     "\x1b[31m"
#define GREEN   "\x1b[32m"
#define YELLOW  "\x1b[33m"
#define BLUE    "\x1b[34m"
#define MAGENTA "\x1b[35m"
#define CYAN    "\x1b[36m"
#define WHITE   "\x1b[37m"

using namespace std;

int main(){
    //GREEN Text 적용
    cout << GREEN << "Green Text\n";
    //Red Text 적용
    cout << RED << "Red Text\n";
    //Reset되어 일반 색상 적용
    cout << RESET;
	return 0;
}

2. Window.h 사용

window.h 안에 내장되어 있는 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), colorNum) 함수를 이용했다

아래 코드에서는 colorNum의 값들을 사용자가 인식할 수 있도록 ColorType의 열거형을 만들었고, SetColor 함수를 만들어 색상 변경할 때 내장되어 있는 긴 함수를 이용하지 않도록 했다 

#include <Window.h>
#include <iostream>
enum ColorType{
    BLACK,      //0
    DarkBLUE,    //1
    DarkGreen,    //2
    DarkSkyBlue,    //3
    DarkRed,      //4
    DarkPurple,    //5
    DarkYellow,    //6
    GRAY,        //7
    DarkGray,    //8
    BLUE,        //9
    GREEN,        //10
    SkyBlue,    //11
    RED,        //12
    PURPLE,        //13
    YELLOW,        //14
    WHITE        //15
} COLOR;

// 색상 입히는 함수를 편하게 사용하기 위한 함수
void SetColor(int colorNum){
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), colorNum);
}

int main(){
	// 아래 cout부터 GREEN 색상 적용됨
	SetColor(GREEN);
	cout << "Green Text\n";
	// 아래 cout부터 RED색상 적용됨
	SetColor(RED);
	cout << "Red Text\n";
	// 아래 cout부터 WHITE 색상 적용됨
	SetColor(WHITE);
	return 0;
}

 

3. 출력 화면

사용 방식은 ANSI 이스케이프 코드를 활용하는 방법이 간편한 것 같아 해당 방법을 자주 사용할 것 같다

'C++' 카테고리의 다른 글

[C++] 시프트 연산자 - 논리 시프트, 산술 시프트  (1) 2025.07.14
[C++] System() 함수 - "cls" , "pause"  (0) 2025.06.13
[C++] 얕은 복사 vs 깊은 복사  (1) 2025.06.12
[C++] 스마트 포인터(Smart Pointer) 개념 정리  (0) 2025.06.12
[C++] 헤더파일 중복방지 #Pragma once vs #ifndef ~ endif  (0) 2025.06.10
'C++' 카테고리의 다른 글
  • [C++] 시프트 연산자 - 논리 시프트, 산술 시프트
  • [C++] System() 함수 - "cls" , "pause"
  • [C++] 얕은 복사 vs 깊은 복사
  • [C++] 스마트 포인터(Smart Pointer) 개념 정리
_Bin_
_Bin_
  • _Bin_
    빈코드 (이전중)
    _Bin_
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 전체보기 (75)
      • C++ (8)
      • Unreal Engine (11)
      • Algorithm (6)
      • 컴퓨터지식(CS) (3)
      • 코딩테스트 (45)
      • 팀프로젝트 (1)
      • 기술면접 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래밍
    CS
    SOLID원칙
    struct
    내일배움캠프
    코딩테스트
    프로그래머스
    Algorithm
    Red-Black Tree
    AVL Tree
    class
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
_Bin_
[C++] 콘솔 텍스트에 색상을 적용시키는 2가지 방법
글쓰기상단으로

티스토리툴바