• 我们不一样①


    从hello world开始

    别人的hello world​​请添加图片描述

    我们的hello world请添加图片33描述

    代码展示

    #include 
    int main(){
    	printf("\033[31mhello world\033[0m"); 
    	getchar();
    	return 0;
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    此处用了 ANSI转义序列

    ANSI转义序列是一种带内信号的转义序列标准,用于控制视频文本终端上的光标位置、颜色和其他选项。在文本中嵌入确定的字节序列,大部分以ESC转义字符和[字符(\033[)开始,终端会把这些字节序列解释为相应的指令,而不是普通的字符编码。

    ANSI转义序列

    字符渲染序列(SGR)

    字符渲染序列用来描述此序列之后的字符在终端中的呈现格式. 它采用字母 m 作为结尾. 在中间的 code 部分, 可以使用 ;>分号来分隔不同的样式码.
    它的形式类似于 x1b[31;43m\033[31;43m , 这样的 CSI 也被称为 Select Graphic Rendition (SGR) 序列.
    大多数终端支持 4 bit 色彩与 8 种样式:

    前景色代码

    F_BLACK = 30
    F_RED = 31
    F_GREEN = 32
    F_YELLOW = 33
    F_BLUE = 34
    F_PURPLE = 35
    F_LIGHTBLUE = 36
    F_WHITE = 37

    背景色代码

    B_BLACK = 40
    B_RED = 41
    B_GREEN = 42
    B_YELLOW = 43
    B_BLUE = 44
    B_PURPLE = 45
    B_LIGHTBLUE = 46
    B_WHITE = 47

    效果代码

    X_NULL = 0 # 清空
    X_BOLD = 1 # 加粗
    X_LIGHT = 2 # 浅色
    X_ITALIC = 3 # 斜体
    X_UNDERLINE = 4 # 下划线
    X_BLINK = 5 # 闪烁
    X_NEGA = 7 # 负片
    X_TRANSPARENT = 8 # 透明

    例如 printf(“\033[31;43mhello world\033[0m”); 将会呈现为黄底红字的 Hello World.
    请添加图片描述
    在末尾的\033 x1b[0m 将会清空样式, 由于 CSI 将会影响之后的所有输出, 如果不清空的话, 会导致之后的所有输出都具有此样式.

    有些终端可接受 8 bit 256 色, 这被称作 “True Color”, 现代终端模拟器甚至可以支持 24bit 颜色,
    已经是标准的图像颜色支持了.
    24bit 色彩使用 RGB 序列, 以这样的形式输出:
    \033[38;2;r;g;bm 前景色
    \033[48;2;r;g;bm 背景色
    示例不是很清楚,要仔细看看:请添加图片描述

    光标移动序列

    转义序列 作用
    CSIA 光标向上移动 n 行
    CSIB 光标向下移动 n 行
    CSIC 光标向前移动 n 列
    CSID 光标向后移动 n 列
    CSI;H 光标移动到第 n 行, 第 m 列
    请添加图片描述
    清屏指令
    CSIcJ 清空屏幕, 当 c 为: 0: 清空光标以下区域 1: 清空光标以上区域 2: 清空全部
    CSIcK 清空行, 当 c 为: 0: 清空光标之后区域 1: 清空光标之前区域 2: 清空整行

    使用宏可以方便控制。(仅仅用前景色举例),也可以用函数实现
    请添加图片描述

    思考练习

    1.画出俄罗斯方块的所有形状。

    截图来源 23物联网工程1班 陈天翔请添加图片描述

    2.一个运动的火车

    请添加图片描述


    ​​

  • 相关阅读:
    TCP套接字编程详解
    C++机票购买系统
    GPT带我学-设计模式13-策略模式
    【支付漏洞】
    基于VUE + Echarts 实现可视化数据大屏消防大数据
    南大通用GBase8s 常用SQL语句(235)
    【Neo4j系列】Neo4j概念简介及整合SpringBoot
    mysql-6-主从复制搭建
    人工神经网络算法的应用,人工智能神经网络算法
    gin路由
  • 原文地址:https://blog.csdn.net/asdcsj/article/details/133952650