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 |
---|---|
0 | BLACK |
1 | BLUE |
2 | GREEN |
3 | AQUA |
4 | RED |
5 | PURPLE |
6 | YELLOW |
7 | WHITE |
8 | GRAY |
9 | LIGHT 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é!
Còn thư viện iostream thì thay màu chữ làm sao ạ
Bạn có thể nói rõ hơn đc không? Mình chưa hiểu ý của bạn…