printf彩色打印模版
1.前言
- 最近不是做了个解数独的程序吗,顺便把其中printf彩色打印输出的部分拿出来讲一讲。(
其实网上很多文章都有讲这里分享一些其他的使用方法)
2.控制命令
- 控制命令以
\033[
开头,以m
结尾。 - 控制命令中,可以添加参数,如
\033[x1;x2;x3m
是一条合法的命令 - 其中x1,x2,x3是三个参数,其含义如下:
x1
代码 | 功能 | 效果图 |
---|---|---|
0 | 重置所有属性 | ![]() |
1 | 高亮,加粗 | ![]() |
2 | 变暗 | ![]() |
3 | 倾斜 | ![]() |
4 | 下划线 | ![]() |
5 | 闪烁 | ![]() |
6 | 闪烁 | ![]() |
7 | 反转前景色和背景色 | ![]() |
8 | 隐藏输出内容 | ![]() |
注意:闪烁由于是变化的过程,难以展示;每个命令结束应该加上\033[0m
防止影响下一次输出。
x2,x3
x2(代码) | x3(代码) | 效果(颜色) |
---|---|---|
30 | 40 | 黑 |
31 | 41 | 红 |
32 | 42 | 绿 |
33 | 43 | 黄 |
34 | 44 | 蓝 |
35 | 45 | 紫 |
36 | 46 | 青 |
注意:超出表格部分 会表示为白色(好像可以在懒得用\033[0m
重置的时候临时用一下)
3.特殊方法
想必大家都发现了,printf所支持的颜色实在太少了,一点个性也没有。其实,printf可以按RGB值打印字符串,方法如下:
printf("\033[38;2;x1;x2;x3m(你的内容)\033[0m");
在这里,x1,x2,x3就分别代表了R,G,B三个参数。(其实你可以用printf彩色打印一张像素风的“高清图片”)
4.示例
- 按灰度打印
#
:
#include<bits/stdc++.h>
using namespace std;
int main(){
for(int i = 0;i <= 255;i++){
printf("\033[38;2;%d;%d;%dm#\033[0m",i,i,i);
if((i+1)%20 == 0){
cout<<'\n';
}
}
return 0;
}
输出
- 用控制命令打印颜色:
#include<bits/stdc++.h>
using namespace std;
int main(){
for(int i = 30;i <= 36;i++){
printf("\033[1;%dm#\t\033[1;37;%dm#\n\033[0m",i,i+10);
}
return 0;
}
输出
5.后记
printf彩色打印是非常实用的,我之前的解数独中也有用到。(话说今天是我生日来着)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析