Lập trình C/C++ – Đổi màu Console

Rate this post

Chắc hẳn, khi mới bắt đầu vào ngành công nghệ thông tin, chúng ta đều đã quen thuộc với cái giao diện Console màn đen chữ trắng đến phát chán. Trong bài viết này, mình sẽ đưa ra 1 hàm sẽ giúp màn hình Console trở nên sinh động hơn bằng cách thay đổi màu chữ hiển thị trên Console.

Nhưng trước tiên, chúng ta hãy tìm hiểu về bảng màu mà Console có thể thay đổi:

Giá trị ( mã màu )Tên màu
0BLACK
1BLUE
2GREEN
3AQUA
4RED
5PURPLE
6YELLOW
7WHITE
8GRAY
9LIGHT BLUE
10 ( A )LIGHT GREEN
11 ( B )LIGHT AQUA
12 ( C )LIGHT RED
13 ( D )LIGHT PURPLE
14 ( E )LIGHT YELLOW
15 ( F )BRIGHT WHITE

Chúng ta có thể xem bảng màu này bằng cách bật CMD và gõ

color [ký tự bất kỳ - ngoại trừ số]

Để đổi màu CMD ta gõ như sau:

color [giá trị của màu]
Giờ hãy bắt đầu với cách đơn giản nhất:
int system(const char *command);

Hàm int system(const char *command) truyền tên lệnh hoặc tên chương trình được xác định bởi command tới môi trường host để được thực thi bởi Command processor và trả về sau khi lệnh đã hoàn thành.

Lưu ý: Để dùng được hàm này cần include <stdlib.h>

Đây là ví dụ:

Tuy nhiên, cách này có 1 nhược điểm đó là khi ta gọi hàm này thì toàn bộ chữ trên console sẽ bị thay đổi. Ví dụ: ban đầu có console chữ màu trắng ( mặc định ), khi gọi hàm system(“color 4”) thì toàn bộ chữ sẽ đổi sang màu đỏ, sau đó tiếp tục gọi hàm system(“color 6”) thì toàn bộ chữ sẽ lại đổi sang màu vàng.

Cách đổi màu thứ 2:

Đây là cách mình hay dùng nhất, còn lý do vì sao thì các bạn xem tiếp sẽ rõ

Với cách thứ 2 này, chúng ta có thể đổi màu 1 cách linh động, thay đổi được màu của từng vùng chữ cụ thể chứ không phải thay đổi màu toàn bộ chữ như cách 1.

void SET_COLOR(int color)
{
	WORD wColor;
     

     HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
     CONSOLE_SCREEN_BUFFER_INFO csbi;
     if(GetConsoleScreenBufferInfo(hStdOut, &csbi))
     {
          wColor = (csbi.wAttributes & 0xF0) + (color & 0x0F);
          SetConsoleTextAttribute(hStdOut, wColor);
     }
}

Lưu ý: Để có thể xây dựng được hàm này cần phải #include <Windows.h>

Như vậy là mình đã trình bày xong những cách để có thể đổi Console trong lập trình C/C++. Cảm ơn các bạn đã xem qua bài viết này.

Hãy để lại bình luận góp ý cho mình nhé!

Hits: 2630

3 thoughts on “Lập trình C/C++ – Đổi màu Console

  • 20 Tháng Chín, 2021 at 2:27 sáng
    Permalink

    Còn thư viện iostream thì thay màu chữ làm sao ạ

    Reply
    • 20 Tháng Chín, 2021 at 1:50 chiều
      Permalink

      Bạn có thể nói rõ hơn đc không? Mình chưa hiểu ý của bạn…

      Reply

Leave a Reply