C++

[C/C++] 콘솔 텍스트 색상 변경하기(SetConsoleTextAttribute)

슥지니 2025. 4. 27. 19:14
반응형

#include <iostream>
#include <windows.h>

constexpr int BLACK = 0;
constexpr int BLUE = 1;
constexpr int GREEN = 2;
constexpr int CYAN = 3;
constexpr int RED = 4;
constexpr int MAGENTA = 5;
constexpr int YELLOW = 6;
constexpr int LIGHT_GRAY = 7;
constexpr int DARK_GRAY = 8;
constexpr int LIGHT_BLUE = 9;
constexpr int LIGHT_GREEN = 10;
constexpr int LIGHT_CYAN = 11;
constexpr int LIGHT_RED = 12;
constexpr int LIGHT_MAGENTA = 13;
constexpr int LIGHT_YELLOW = 14;
constexpr int WHITE = 15;

void setColor(int color) {
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}

void printColorBlock(int color, const std::string& colorName) {
    setColor(color);
    std::cout << "■ " << colorName << std::endl;
    setColor(WHITE); 
}

int main() {
    printColorBlock(BLACK, "BLACK (0)");
    printColorBlock(BLUE, "BLUE (1)");
    printColorBlock(GREEN, "GREEN (2)");
    printColorBlock(CYAN, "CYAN (3)");
    printColorBlock(RED, "RED (4)");
    printColorBlock(MAGENTA, "MAGENTA (5)");
    printColorBlock(YELLOW, "YELLOW (6)");
    printColorBlock(LIGHT_GRAY, "LIGHT_GRAY (7)");
    printColorBlock(DARK_GRAY, "DARK_GRAY (8)");
    printColorBlock(LIGHT_BLUE, "LIGHT_BLUE (9)");
    printColorBlock(LIGHT_GREEN, "LIGHT_GREEN (10)");
    printColorBlock(LIGHT_CYAN, "LIGHT_CYAN (11)");
    printColorBlock(LIGHT_RED, "LIGHT_RED (12)");
    printColorBlock(LIGHT_MAGENTA, "LIGHT_MAGENTA (13)");
    printColorBlock(LIGHT_YELLOW, "LIGHT_YELLOW (14)");
    printColorBlock(WHITE, "WHITE (15)");

    return 0;
}
반응형