用c++写出根据用户选择设置控制台背景色
时间: 2024-09-27 19:06:27 浏览: 24
C++控制台渲染一朵逼真的玫瑰花
在C++中,控制台背景颜色通常受到操作系统的限制,并非所有平台都支持直接修改背景色。但在Windows平台上,你可以使用Windows API函数`SetConsoleTextAttribute`来改变控制台文本和背景的颜色。以下是一个简单的示例,展示了如何让用户从几种预设的颜色中选择并设置背景色:
```cpp
#include <windows.h>
#include <iostream>
// 预设的背景颜色枚举
enum ConsoleColor { RED = 4, GREEN = 2, BLUE = 0 };
void setConsoleColor(ConsoleColor color) {
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
switch (color) {
case RED:
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | BACKGROUND_RED);
break;
case GREEN:
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | BACKGROUND_GREEN);
break;
case BLUE:
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | BACKGROUND_BLUE);
break;
default:
// 如果用户选择了无效的颜色,恢复默认颜色
SetConsoleTextAttribute(hConsole, ENABLE_ALL_MOUSE_INPUT);
}
}
int main() {
std::cout << "请选择背景色(1.红,2.绿,3.蓝,默认回车):" << std::endl;
int choice;
std::cin >> choice;
if (choice >= 1 && choice <= 3) {
setConsoleColor((ConsoleColor)choice - 1);
}
return 0;
}
```
注意这个示例仅适用于Windows环境,并且不是所有的Linux系统都有相应的API来改变背景色。如果你需要跨平台的方法,可能需要借助第三方库如ncurses或konsole。
阅读全文