C++如何设置输出字体颜色_C++控制台文本颜色修改代码


答案是使用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位控制背景色。常用前景色代码如下:

  • 1:蓝色
  • 2:绿色
  • 3:青色
  • 4:红色
  • 5:紫色
  • 6:黄色
  • 7:白色(默认)
  • 8:灰色
  • 9:亮蓝色
  • 10:亮绿色
  • 12:亮红色
  • 14:亮黄色
  • 15:亮白色

示例代码

下面是一个完整示例,展示如何输出不同颜色的文本:

#include stream>
#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

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

致胜网络推广营销网


致胜网络推广营销网

致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 915688610

 17370845950

 915688610@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.