C++更改控制台颜色
时间: 2024-10-15 07:25:40 浏览: 50
在C++中,你可以使用Windows API中的`SetConsoleTextAttribute`函数来更改控制台窗口的颜色。这个函数需要一个`HANDLE`,通常从`GetStdHandle(STD_OUTPUT_HANDLE)`获取,以及一个`WORD`类型的颜色值,表示前景颜色和背景颜色的组合。
以下是一个基本的例子,展示如何设置文本颜色:
```cpp
#include <windows.h>
#include <iostream>
// 函数用来设置控制台颜色
void setConsoleColor(unsigned short colorCode) {
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
if (hConsole != INVALID_HANDLE_VALUE) {
DWORD attr;
GetConsoleScreenBufferInfo(hConsole, &attr);
attr &= ~(FOREGROUND_MASK | BACKGROUND_MASK); // 清除原有颜色
attr |= colorCode; // 设置新颜色
SetConsoleTextAttribute(hConsole, attr);
} else {
std::cerr << "Failed to get console handle!" << std::endl;
}
}
int main() {
// 设置红色文字
setConsoleColor(FOREGROUND_RED | FOREGROUND_INTENSITY);
std::cout << "这是红色的文字。\n";
// 另外可以设置其他颜色,如绿色
setConsoleColor(FOREGROUND_GREEN | FOREGROUND_INTENSITY);
std::cout << "现在是绿色的文字。\n";
return 0;
}
```
在上述代码中,`FOREGROUND_RED`、`FOREGROUND_GREEN`、`FOREGROUND_BLUE`等宏分别代表红、绿、蓝三种原色,而`FOREGROUND_INTENSITY`使得颜色更鲜明。同时,也可以结合背景颜色,比如`BACKGROUND_RED`。
阅读全文