首页 > 其他分享 >terminal 显示带颜色的字符

terminal 显示带颜色的字符

时间:2023-09-05 16:25:20浏览次数:39  
标签:字符 颜色 color 30 terminal printf 033 Hello 0m

参考
https://blog.csdn.net/u014470361/article/details/81512330

终端显示字体背景和字体颜色等使用用法
  可输入以下指令查看其使用方法

man console_codes
在命令行下能产生五颜六色的字体和图案,只需要加上一些颜色代码,例如:
  printf(“\033[0;30;41m color!!! \033[0m Hello \n”);
  其中41的位置代表字的背景色, 30的位置是代表字的颜色,0 是字的一些特殊属性,0代表默认关闭,一些其他属性如闪烁、下划线等。ascii code 是对颜色进行调用的。
\033[ ; m …… \033[0m
  颜色的控制通过ESC字符(\033)加”[“加颜色代码加”m”实现。ESC的ASCII码是十进制的27,八进制的033(\033)。

  在 ANSI 兼容终端里,可以用彩色显示文本而不仅仅是黑白。但是我们自己编写的程序能否输出彩色的字符呢?当然答案是肯定的。下面的语句就输出高亮的黑色背景的绿色字。
  printf(“\033[1;40;32m color!!! \033[0m hello\n”);
  \033 声明了转义序列的开始,然后是 [ 开始定义颜色。后面的 1 定义了高亮显示字符。然后是背景颜色,这里面是40,表示黑色背景。接着是前景颜色,这里面是32,表示绿色。我们用 \033[0m 关闭转义序列, \033[0m 是终端默认颜色。通过上面的介绍,就知道了如何输出彩色字符了。
字色              背景              颜色
---------------------------------------
30                40              黑色
31                41              紅色
32                42              綠色
33                43              黃色
34                44              藍色
35                45              紫紅色
36                46              青藍色
37                47              白色



代码 意义
————————-
0 终端默认设置(黑底白字)
1 高亮显示
4 使用下划线
5 闪烁
7 反白显示
8 不可见



printf("\033[1;33m Hello World. \033[0m \n");  
颜色列表如下:  
none         = "\033[0m"  
black        = "\033[0;30m"  
dark_gray    = "\033[1;30m"  
blue         = "\033[0;34m"  
light_blue   = "\033[1;34m"  
green        = "\033[0;32m"  
light_green -= "\033[1;32m"  
cyan         = "\033[0;36m"  
light_cyan   = "\033[1;36m"  
red          = "\033[0;31m"  
light_red    = "\033[1;31m"  
purple       = "\033[0;35m"  
light_purple = "\033[1;35m"  
brown        = "\033[0;33m"  
yellow       = "\033[1;33m"  
light_gray   = "\033[0;37m"  
white        = "\033[1;37m"  

字背景颜色范围:40--49                   字颜色: 30--39  
40: 黑                         30: 黑  
41:红                          31: 红  
42:绿                          32: 绿  
43:黄                          33: 黄  
44:蓝                          34: 蓝  
45:紫                          35: 紫  
46:深绿                        36: 深绿  
47:白色                        37: 白色  



输出特效格式控制:  

\033[0m  关闭所有属性    
\033[1m   设置高亮度    
\03[4m   下划线    
\033[5m   闪烁    
\033[7m   反显    
\033[8m   消隐    
\033[30m   --   \033[37m   设置前景色    
\033[40m   --   \033[47m   设置背景色  



光标位置等的格式控制:  

\033[nA  光标上移n行    
\03[nB   光标下移n行    
\033[nC   光标右移n行    
\033[nD   光标左移n行    
\033[y;xH设置光标位置    
\033[2J   清屏    
\033[K   清除从光标到行尾的内容    
\033[s   保存光标位置    
\033[u   恢复光标位置    
\033[?25l   隐藏光标    
\33[?25h   显示光标


终端显示字体背景和字体颜色代码测试

#include<stdio.h>
#include<unistd.h>

int main (int argc ,char *argv[])
{
        printf("************************* \n");
        printf("\033[0;30;41m color!!! \033[0m Hello \n");
        printf("\033[1;30;41m color!!! \033[0m Hello \n");
        printf("\033[4;30;41m color!!! \033[0m Hello \n");
        printf("\033[5;30;41m color!!! \033[0m Hello \n");
        printf("\033[7;30;41m color!!! \033[0m Hello \n");
        printf("\033[8;30;41m color!!! \033[0m Hello \n");


        printf("************************* \n");
        printf("\033[0;30;41m color!!! \033[0m Hello \n");
        printf("\033[0;31;41m color!!! \033[0m Hello \n");
        printf("\033[0;32;41m color!!! \033[0m Hello \n");
        printf("\033[0;33;41m color!!! \033[0m Hello \n");
        printf("\033[0;34;41m color!!! \033[0m Hello \n");
        printf("\033[0;35;41m color!!! \033[0m Hello \n");
        printf("\033[0;36;41m color!!! \033[0m Hello \n");
        printf("\033[0;37;41m color!!! \033[0m Hello \n");

        printf("************************* \n");
        printf("\033[0;30;40m color!!! \033[0m Hello \n");
        printf("\033[0;30;41m color!!! \033[0m Hello \n");
        printf("\033[0;30;42m color!!! \033[0m Hello \n");
        printf("\033[0;30;43m color!!! \033[0m Hello \n");
        printf("\033[0;30;44m color!!! \033[0m Hello \n");
        printf("\033[0;30;45m color!!! \033[0m Hello \n");
        printf("\033[0;30;46m color!!! \033[0m Hello \n");
        printf("\033[0;30;47m color!!! \033[0m Hello \n");
        
    printf("\033[42;37m  PPPPPPPPPPPPPPPPP        AAA                 SSSSSSSSSSSSSSS    SSSSSSSSSSSSSSS   \033[0m\n");
    printf("\033[42;37m  P::::::::::::::::P      A:::A              SS:::::::::::::::S SS:::::::::::::::S  \033[0m\n");
    printf("\033[42;37m  P::::::PPPPPP:::::P    A:::::A            S:::::SSSSSS::::::SS:::::SSSSSS::::::S  \033[0m\n");
    printf("\033[42;37m  PP:::::P     P:::::P  A:::::::A           S:::::S     SSSSSSSS:::::S     SSSSSSS  \033[0m\n");
    printf("\033[42;37m    P::::P     P:::::P A:::::::::A          S:::::S            S:::::S              \033[0m\n");
    printf("\033[42;37m    P::::P     P:::::PA:::::A:::::A         S:::::S            S:::::S              \033[0m\n");
    printf("\033[42;37m    P::::PPPPPP:::::PA:::::A A:::::A         S::::SSSS          S::::SSSS           \033[0m\n");
    printf("\033[42;37m    P:::::::::::::PPA:::::A   A:::::A         SS::::::SSSSS      SS::::::SSSSS      \033[0m\n");
    printf("\033[42;37m    P::::PPPPPPPPP A:::::A     A:::::A          SSS::::::::SS      SSS::::::::SS    \033[0m\n");
    printf("\033[42;37m    P::::P        A:::::AAAAAAAAA:::::A            SSSSSS::::S        SSSSSS::::S   \033[0m\n");
    printf("\033[42;37m    P::::P       A:::::::::::::::::::::A                S:::::S            S:::::S  \033[0m\n");
    printf("\033[42;37m    P::::P      A:::::AAAAAAAAAAAAA:::::A               S:::::S            S:::::S  \033[0m\n");
    printf("\033[42;37m  PP::::::PP   A:::::A             A:::::A  SSSSSSS     S:::::SSSSSSSS     S:::::S  \033[0m\n");
    printf("\033[42;37m  P::::::::P  A:::::A               A:::::A S::::::SSSSSS:::::SS::::::SSSSSS:::::S  \033[0m\n");
    printf("\033[42;37m  P::::::::P A:::::A                 A:::::AS:::::::::::::::SS S:::::::::::::::SS   \033[0m\n");
    printf("\033[42;37m  PPPPPPPPPPAAAAAAA                   AAAAAAASSSSSSSSSSSSSSS    SSSSSSSSSSSSSSS     \033[0m\n");

      
        return 0;

}

 

Tips:

可以用notepad++ 按住WIN+Ctrl 鼠标点击处理一列数据,一列添加,删除,修改 都可以。

标签:字符,颜色,color,30,terminal,printf,033,Hello,0m
From: https://www.cnblogs.com/scotth/p/17679968.html

相关文章

  • 字符串处理
    1.数组拼接坑比用例322,5,6,7,,,9,5,71,7,4,3,,4importjava.util.Scanner;importjava.util.*;//注意类名必须为Main,不要有任何packagexxx信息publicclassMain{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in)......
  • dotnet 读 WPF 源代码笔记 渲染层是如何将字符 GlyphRun 画出来的
    从业务代码构建出来GlyphRun对象,在WPF的渲染层里,如何利用GlyphRun提供的数据将字符在界面呈现出来。本文将和大家聊聊从WPF的渲染层获取到GlyphRun数据,到调用DirectX的各个渲染相关方法的过程,也就是WPF绘制文本字符的原理或者实现方法大家印象中的绘制一段文本是调......
  • LeetCode -- 394. 字符串解码(栈处理字符串问题)
     我们用栈同时维护当前字符串和倍数以及要加倍的字符串当遇到"["时,我们保存当前字符串,即将当前字符cres串入栈;当遇到"]"时,res=cres+倍数*应加倍的字符串classSolution:defdecodeString(self,s:str)->str:stack,res,multi=[],"",0......
  • 【群答疑】jmeter关联获取上一个请求返回的字符串,分割后保存到数组,把数组元素依次作为
    一个非常不错的问题,来检验下自己jmeter基本功 可能有同学没看懂题,这里再解释一下,上面问题需求是:jmeter关联获取上一个请求返回的字符串,分割后保存到数组,把数组元素依次作为下一个请求的入参 建议先自己思考,如果2小时没做出来,可以参考文末评论区的实现思路(仅登录后可见) ......
  • java 将长字符串截取为指定位数短字符代码
    //原始长字符串strContextStringstrContext="长字符串................................";ArrayList<String>arrayList=newArrayList(5);inttotalNo=strContext.length();//小字符串长度pageSizeintpageSize=20;if(totalNo>pageSize){//取模等于0,说......
  • MASM32编程状态栏显示字符动画,按钮跑马灯
    一、需求分析由于sysInfo扫描的内容比较多,打算为它增加一点动画效果,提醒用户程序正在运行,耐心等待。二、构建测试窗口测试窗口上放置有一个按钮,按钮上的初始文字是“开始扫描”;并使用状态栏,状态栏初始状态不显示文字。;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<......
  • JavaScript用indexOf()在字符串数组中查找子串时需要注意的一个地方
    一、遇到问题在 继续更新完善:C++结构体代码转MASM32代码 中,由于结构体成员中可能为数组类型的情况,因此我们在提取结构体成员信息的过程中,需要检测结构体成员名称字符串中是否包括[],如果包括那么我们要截取'['前面的内容作为成员名称。在用字符串的indexOf()方法检测和定位'['......
  • uniapp切换主题颜色(后台管理系统)
    需求:在现有已经做好的后台管理系统添加一个切换主题颜色的功能分析:该项目用了很多uniapp的组件,css样式没有统一,类名也没有统一使用混合mixin.scss,并使用vuex效果图功能:按钮背景颜色、部分样式、字体图标、分页跟随主题颜色变化也变化每一个用户喜欢的主题颜色都不一样,后端......
  • 通过class字节码了解StringBuilder拼接字符串效率高的原因
    挺久没具体去看了,随手记一下吧。Stringstr="";for(inti=0;i<10;i++){str+=i;}这样的拼法,实际上从分析class的字节码来看,是在循环里面newStringBuffer对象,相当的耗。通过这样的分析,给新人解释,是最有效的了。还能提升一些了解java底层知识的兴趣。——《Java编程思......
  • 1768. 交替合并字符串
    给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回 合并后的字符串 。 示例1:输入:word1="abc",word2="pqr"输出:"apbqcr"解释:字符串合并情况如......