printf彩色打印模版

1.前言

  • 最近不是做了个解数独的程序吗,顺便把其中printf彩色打印输出的部分拿出来讲一讲。(其实网上很多文章都有讲这里分享一些其他的使用方法)

2.控制命令

  1. 控制命令以\033[开头,以m结尾
  2. 控制命令中,可以添加参数,如\033[x1;x2;x3m是一条合法的命令
  3. 其中x1,x2,x3是三个参数,其含义如下:

x1

代码 功能 效果图
0 重置所有属性 image
1 高亮,加粗 image
2 变暗 image
3 倾斜 image
4 下划线 image
5 闪烁 image
6 闪烁 image
7 反转前景色和背景色 image
8 隐藏输出内容 image

注意:闪烁由于是变化的过程,难以展示;每个命令结束应该加上\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.示例

  1. 按灰度打印#
#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;
}

输出
image

  1. 用控制命令打印颜色:
#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;
}

输出
image

5.后记

printf彩色打印是非常实用的,我之前的解数独中也有用到。(话说今天是我生日来着)

posted @   Gavinbeta  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示