zoukankan      html  css  js  c++  java
  • 多样化终端输出--样式控制'03'

    背景

    昨天订阅了极客时间的“人人都能学会的编程入门课”,准备回炉重造下,刚好更新到:“教你输出彩色的文字”,才知道以前的C语言白学了,连03都不知道,汗颜……在这里记录下

    03介绍

    简介

    控制终端内文字显示样式的转义字符'33',这是一个八进制表示的转义字符,也可以写作十六进制的'x1b',或者'e'。通常情况下,三者是一致的,但是也只是“通常”。

    格式

    "03[字符显示属性m要显示的字符串"
    说明:
    	03 样式控制转义字符
    	[ 和 m 之间的部分是显示属性,可以类比css样式,不过,只能控制显示方式、字符颜色、背景色。多个用分号分割
    	m 之后就是要显示的字符串内容了
    
    更完整的格式是:
    	"03[字符显示属性m要显示的字符串03[m"
    或者:
    	"03[字符显示属性m要显示的字符串03[0m"
    说明:
    	结尾的03[m 其实是相当于一个样式复位的操作,之后的字符串显示,还是按照默认样式进行
    

    显示属性

    显示方式:
    0(默认值)、1(加粗)、2(灰显)、3(斜体)、4(下划线)、5(慢闪烁)、6 (快闪烁)、7(反显)、8 (隐藏)、9(删除线)
    

    显示方式中:5、6、8测试,没有看出来任何效果……

    字符的颜色:
    30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(深蓝色)、35(紫色)、36(浅蓝色)、37(白色)
    
    字符的背景颜色:
    40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(紫色)、46(浅蓝色)、47(白色)
    

    03 测试使用

    echo

    • centos:
    echo -e "33[34;4mhello33[m"
    echo -e "e[34;4mhelloe[m"
    echo -e "x1b[34;4mhellox1b[m"
    

    需要加 -e选项,才能解析转义字符,33、x1b、e 均支持

    • macOS:
    echo -e "33[34;4mhello33[m"
    echo -e "e[34;4mhelloe[m"
    echo -e "x1b[34;4mhellox1b[m"
    

    可以不添加-e 选项,考虑通用性,尽量都添加

    c中的printf

    #include<stdio.h>
    
    int main(){
        printf("33[34;4mhello
    33[m"); 
        return 0;
    }
    

    33、e、x1b均支持

    python中的print

    print("33[4;34mhello33[m")
    

    python2.7、3.7均只支持33和x1b,不支持e

    java System.out.print

    public class Test {
        public static void main(String[] args) {
            System.out.println("33[34;4mhello world33[m");
        }
    }
    

    java中支持33,不支持e、x1b

    关于结尾关闭字符33[m

    print("33[4;34mhello") # 没有复位显示样式,下一行的输出样式,与第一行一致
    print("hello")
    

    总结

    尽量只使用33,因为它是最通用的,使用时,尽量带上结尾的样式复位33[m

    参考

  • 相关阅读:
    [LeetCode] 294. Flip Game II 翻转游戏之二
    [LeetCode] 293. Flip Game 翻转游戏
    [LeetCode] 266. Palindrome Permutation 回文全排列
    [LeetCode] 288. Unique Word Abbreviation 独特的单词缩写
    [LeetCode] Self Crossing 自交
    [LeetCode] 281. Zigzag Iterator 之字形迭代器
    [LeetCode] 251. Flatten 2D Vector 压平二维向量
    [LeetCode] 250. Count Univalue Subtrees 计数相同值子树的个数
    [LeetCode] 249. Group Shifted Strings 群组偏移字符串
    [LeetCode] 248. Strobogrammatic Number III 对称数之三
  • 原文地址:https://www.cnblogs.com/dqrcsc/p/12162080.html
Copyright © 2011-2022 走看看