答案是使用Windows API的SetConsoleTextAttribute()函数可修改C++控制台文本颜色,需包含windows.h头文件,通过设置颜色代码改变前景色和背景色,颜色持续生效直至重新设置,示例中分别输出红、绿、亮黄及默认颜色文字,跨平台应用需考虑ANSI转义序列兼容性。
在C++中,可以通过调用Windows API函
数来修改控制台输出的文本颜色。这种方法适用于Windows平台下的控制台程序(如使用Visual Studio编译运行的程序)。核心函数是SetConsoleTextAttribute(),它定义在windows.h头文件中。
要使用颜色控制功能,需包含以下头文件:
#include iostream>
#include windows.h>
使用SetConsoleTextAttribute()函数可以改变后续输出文本的颜色。该函数接受两个参数:控制台句柄和颜色属性。常用方式如下:
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, color_code);
其中color_code是一个整数值,代表前景色(文字颜色)和背景色的组合。
颜色由4位二进制数表示,低4位控制前景色,高4位控制背景色。常用前景色代码如下:
下面是一个完整示例,展示如何输出不同颜色的文本:
#include
#include windows.h>
using namespace std;
int main() {
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
// 红色文字
SetConsoleTextAttribute(hConsole, 4);
cout
// 绿色文字
SetConsoleTextAttribute(hConsole, 2);
cout
// 亮黄色文字(背景为黑色)
SetConsoleTextAttribute(hConsole, 14);
cout
// 恢复默认颜色
SetConsoleTextAttribute(hConsole, 7);
cout
return 0;
}
颜色设置会持续生效,直到再次更改。如果希望恢复默认颜色,通常使用7(白色/灰色)。跨平台程序无法直接使用此方法,Linux/macOS需使用ANSI转义序列。若需兼容多平台,建议封装颜色输出函数进行条件编译处理。
基本上就这些。不复杂但容易忽略的是记得恢复颜色或统一管理状态。
# c++
# linux
# windows
# mac
# ai
# ios
# macos
# win
# stream
# 跨平台应用
# cos
# 封装
# include
# int
# using
# Namespace
# visual studio
# 是一个
# 头文件
# 前景色
# 背景色
# 的是
# 句柄
# 适用于
# 可以通过
# 要使
# 若需
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
c++怎么调用nana库开发GUI_c++ 现代风格窗口组件与事件处理【实战】
Mac的“调度中心”与“空间”怎么用_Mac多桌面高效管理【技巧】
Win11任务栏颜色怎么改_Win11自定义任务栏配色设置【美化】
Win10怎么限制单程序CPU占用上限_Win10任务管理器亲和性或第三方工具均衡负载【技巧】
Win10如何设置双wan路由器 Win10双wan路由器设置方法【指南】
c# 服务器GC和工作站GC的区别和设置
Win11怎么关闭搜索历史_Win11清除任务栏搜索记录【隐私】
Python装饰器设计思路_功能增强机制说明【指导】
Go语言中slice追加操作的底层共享机制解析
Win11怎么恢复旧版开始菜单_通过软件还原Win10风格菜单【详解】
php中$this和::能混用吗_对象与静态作用域冲突解决【方法】
如何在Golang中使用replace替换模块_指定本地或远程路径
C++如何获取CPU核心数?(std::thread::hardware_concurrency)
Linux怎么实现内网穿透_Linux安装Frp客户端与服务端配置【方法】
php怎么下载安装并配置环境变量_命令行调用PHP技巧【技巧】
Python装饰器复用技巧_通用能力解析【教程】
Python脚本参数接收_sys与argparse解析【指导】
如何在 Go 结构体中正确初始化 map 字段
Win11怎么设置鼠标宏_Win11鼠标按键自定义编程教程【详解】
Mac的访达(Finder)怎么用_Mac文件管理入门教程【详解】
Python迭代器生成器进阶教程_节省内存与懒加载实战
Mac如何与安卓手机传文件_Mac和Android设备互通【必备工具】
php订单日志怎么按状态筛选_php筛选不同状态订单日志教程【教程】
Win11怎样安装搜狗输入法_Win11安装搜狗输入法教程【步骤】
c++如何判断文件是否存在_c++ filesystem库用法
如何使用Golang处理静态文件缓存_提高页面加载速度
Win11怎么关闭搜索历史_Win11清除设备上的搜索历史记录
Win11声音太小怎么办_Windows 11开启响度均衡增强音量【技巧】
Win11怎样安装剪映专业版_Win11安装剪映教程【步骤】
如何优化Golang内存分配与GC调度_Golang垃圾回收优化示例
Windows10怎么查看系统激活状态_Windows10激活状态查看方法【教程】
PowerShell怎么创建复杂的XML结构
php本地部署支持nodejs吗_php与nodejs混合开发环境搭建教程【教程】
Linux如何挂载新硬盘_Linux磁盘分区格式化与开机自动挂载【指南】
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
Linux如何安装JDK11_Linux环境变量配置与Java开发环境搭建【教程】
Mac如何修改Hosts文件?(本地开发与屏蔽网站)
如何解决Windows字体显示模糊的问题?(ClearType设置)
How to Properly Use NumPy in VS Code
如何自定义Windows终端的默认配置文件?(PowerShell/CMD)
Windows10无法连接到Internet_Win10网络重置命令详解
php485支持哪些操作系统_php485跨系统支持情况介绍【解答】
如何在 Go 同包不同文件中正确引用结构体
Windows10系统怎么查看CPU温度_Win10性能监视器查看硬件数据
Win11相机打不开提示错误怎么修_相机权限开启与驱动修复【影像修复】
c++如何使用std::bitset进行位图算法_c++ 快速查找与大规模数据排重【方法】
如何在 IIS 上为 ASP.NET 6 应用排除特定目录并交由 PHP 处理
mac怎么安装pip_MAC Python pip安装工具与升级方法【详解】
PyTorch DDP 多进程训练在 Kaggle 笔记本中的正确启动方式
win11 OneDrive怎么彻底关闭 Win11禁用并卸载OneDrive教程【分享】
2025-12-01
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。