C\C++ 终端输出带有颜色的字符

终端显示带有颜色的字符

终端显示带有颜色的字符

  • 终端显示带有颜色的字符
    • 背景:
    • 测试机器,win10系统, VS2022编写
    • 字体设置不同的颜色
    • 背景色
    • 光标移动 (这个用的估计不是很多)
    • 字体设置
    • 动态显示
    • C++ cout 也可以
    • 测试代码
    • 准确的说这个能力是shell窗口提供的,跟语言没有关系,一般输出到终端的都可以用这个方法。
  • 扩展

背景:

之前写过一个测试小工具就是测试读取OCR字符是否正确的工具,但是在显示窗口下只能显示白色字符,我希望是OCR正确识别的的显示绿色,错误识别的显示红色,这样一目了然,给老板做汇报的时候满屏幕花花绿绿的也显示自己水平高,后来找了半天资料引入了fmt库才实现显示。 今天在抖音刷到可以在printf函数设置显示颜色,然后做一下记录。

测试机器,win10系统, VS2022编写

字体设置不同的颜色

30 -37 用来显示字体的颜色 至于30到37显示那种颜色可以看截图,代码运行截图的

		// 30 -37  用来显示字体的颜色  printf("显示字体色\n");printf("\033[30m hello world\n");printf("\033[31m hello world\n");printf("\033[32m hello world\n");printf("\033[33m hello world\n");printf("\033[34m hello world\n");printf("\033[35m hello world\n");printf("\033[36m hello world\n");printf("\033[37m hello world\n");

在这里插入图片描述

背景色

		// 40 - 47 用来设置背景的颜色printf("显示背景色\n");printf("\033[40m hello world\n");printf("\033[41m hello world\n");printf("\033[42m hello world\n");printf("\033[43m hello world\n");printf("\033[44m hello world\n");printf("\033[45m hello world\n");printf("\033[46m hello world\n");printf("\033[47m hello world\n");

在这里插入图片描述

光标移动 (这个用的估计不是很多)

		// A 表示上移光标 B 表示下移光标 C表示右移光标 D表示左移光标 YXH设置光标的位置printf("光标移动\n\n");printf("\033[A     Ahello world\n");printf("\033[B     Bhello world\n");printf("\033[C     Chello world\n");printf("\033[D     Dhello world\n");

在这里插入图片描述

字体设置

		// 1m  是数字1 显示高亮, 如果不关闭下面打印的都高亮, 0m是关闭高亮 3m是斜体,4m是增加下划线5m让输出的内容闪烁, 7m反显示效果printf("\033[1m hello world \033[0m\n");printf(" hello world \n");		printf("\033[3m hello world\n");printf("\033[5m hello world\n");printf("\033[7m hello world\n");

在这里插入图片描述

动态显示

在这里插入图片描述
这个时间是可以刷新的,不太会接gif就不弄了。

	while (1){time_t cur = time(NULL);struct tm* t = localtime(&cur);printf("当前时间:%d: %d : %d\n", t->tm_hour, t->tm_min, t->tm_sec);printf("\033[K");	// K 表示清空后面的内容printf("\033[A");	// A表示向上移动一行,移动多行: 加上数字就行 \033[3A _sleep(1000);}

C++ cout 也可以

	cout <<"显示字体色\n";cout << "\033[30m hello world\n";cout << "\033[31m hello world\n";cout << "\033[32m hello world\n";cout << "\033[33m hello world\n";cout << "\033[34m hello world\n";cout << "\033[35m hello world\n";cout << "\033[36m hello world\n";cout << "\033[37m hello world\n";

在这里插入图片描述

测试代码

#include <iostream>
#include <time.h>
#pragma warning(disable:4996)        //关闭全部
using namespace std;
int main()
{//while (1)//{//time_t cur = time(NULL);//struct tm* t = localtime(&cur);//printf("当前时间:%d: %d : %d\n", t->tm_hour, t->tm_min, t->tm_sec);//printf("\033[K");	// K 表示清空后面的内容//printf("\033[A");	// A表示向上移动一行,移动多行: 加上数字就行 \033[3A //_sleep(1000);// 1m  是数字1 显示高亮, 如果不关闭下面打印的都高亮, 0m是关闭高亮 3m是斜体,4m是增加下划线5m让输出的内容闪烁, 7m反显示效果//printf("\033[1m hello world \033[0m\n");//printf(" hello world \n");		//printf("\033[3m hello world\n");//printf("\033[5m hello world\n");//printf("\033[7m hello world\n");// 30 -37  用来显示字体的颜色  //printf("显示字体色\n");//printf("\033[30m hello world\n");//printf("\033[31m hello world\n");//printf("\033[32m hello world\n");//printf("\033[33m hello world\n");//printf("\033[34m hello world\n");//printf("\033[35m hello world\n");//printf("\033[36m hello world\n");//printf("\033[37m hello world\n");// 40 - 47 用来设置背景的颜色//printf("显示背景色\n");//printf("\033[40m hello world\n");//printf("\033[41m hello world\n");//printf("\033[42m hello world\n");//printf("\033[43m hello world\n");//printf("\033[44m hello world\n");//printf("\033[45m hello world\n");//printf("\033[46m hello world\n");//printf("\033[47m hello world\n");// A 表示上移光标 B 表示下移光标 C表示右移光标 D表示左移光标 YXH设置光标的位置//printf("光标移动\n\n");//printf("\033[A     Ahello world\n");//printf("\033[B     Bhello world\n");//printf("\033[C     Chello world\n");//printf("\033[D     Dhello world\n");//getchar();//}cout <<"显示字体色\n";cout << "\033[30m hello world\n";cout << "\033[31m hello world\n";cout << "\033[32m hello world\n";cout << "\033[33m hello world\n";cout << "\033[34m hello world\n";cout << "\033[35m hello world\n";cout << "\033[36m hello world\n";cout << "\033[37m hello world\n";return 0;
}

准确的说这个能力是shell窗口提供的,跟语言没有关系,一般输出到终端的都可以用这个方法。

扩展

这位老哥写的比我清楚

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/377143.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】继承(二)

目录 5、继承与友元 6、继承与静态成员 7、复杂的菱形继承和菱形虚拟继承 8、继承的总结与反思 5、继承与友元 友元关系不能继承&#xff0c;也就是说父类的友元不能访问子类的私有或保护的成员 class Student; class Person { public:friend void Display(const Person&a…

.net C# 使用网易163邮箱搭建smtp服务,实现发送邮件功能

功能描述&#xff1a;使用邮箱验证实现用户注册激活和找回密码。邮箱选择网易163作为smtp服务器。 真实测试情况&#xff1a;第一种&#xff1a;大部分服务器运行商的25端口默认是封禁的&#xff0c;可以联系运营商进行25端口解封&#xff0c;解封之后可以使用25端口。第二种&…

【Pytorch】Conda环境下载慢换源/删源/恢复默认源

文章目录 背景临时换源永久换源打开conda配置condarc换源执行配置 命令行修改源添加源查看源 删源恢复默认源使用示范 背景 随着实验增多&#xff0c;需要分割创建环境的情况时有出现&#xff0c;在此情况下使用conda create --name xx python3.10 pytorch torchvision pytorc…

文件读写操作之c语言、c++、windows、MFC、Qt

目录 一、前言 二、c语言文件读写 1.写文件 2.读文件 三、c文件读写 1.写文件 2.读文件 四、windows api文件读写 1.写文件 2.读文件 五、MFC文件读写 1.写文件 2.读文件 六、Qt文件读写 1.写文件 2.读文件 七、总结 一、前言 我们在学习过程中&#xff0c…

OpenCV解决验证码(数字和字母)识别(Python)

文章目录 前言一、准备验证码图片 前言 OpenCV是一个基于Apache2.0许可&#xff08;开源&#xff09;发行的跨平台计算机视觉和机器学习软件库。它支持Windows、Linux、Mac OS、Android和iOS等多个操作系统&#xff0c;提供了丰富的图像处理和计算机视觉功能&#xff0c;包括但…

链路追踪系列-01.mac m1 安装zipkin

下载地址&#xff1a;https://hub.docker.com/r/openzipkin/zipkin jelexjelexxudeMacBook-Pro zipkin-server % pwd /Users/jelex/Documents/work/zipkin-server 先启动Es: 可能需要先删除 /Users/jelex/dockerV/es/plugins 目录下的.DS_Store 当端口占用时再次启动&#x…

Qt+ESP32+SQLite 智能大棚

环境简介 硬件环境 ESP32、光照传感器、温湿度传感器、继电器、蜂鸣器 基本工作流程 上位机先运行&#xff0c;下位机启动后尝试连接上位机连接成功后定时上报传感器数据到上位机&#xff0c;上位机将信息进行处理展示判断下位机传感器数据&#xff0c;如果超过设置的阈值&a…

【Wamp】局域网设备访问WampServer | 使用域名访问Wamp | Wamp配置HTTPS

局域网设备访问WampServer 参考&#xff1a;https://www.jianshu.com/p/d431a845e5cb 修改Apache的httpd.conf文件 D:\Academic\Wamp\program\bin\apache\apache2.4.54.2\conf\httpd.conf 搜索 Require local 和Require all denied&#xff0c;改为Require all granted <…

【排序算法】计数排序

目录 一.基本思想 二.缺陷及优化 三.代码实现 四.特性总结 1.可以排序负数 2.适合范围集中的整数 3.时间复杂度&#xff1a;O(Nrange) 4.空间复杂度&#xff1a;O(range) 5.稳定性&#xff1a;稳定 一.基本思想 根据待排序数组a创建一个新的数组count&#xff0c;该数组…

python--实验 11 模块

目录 知识点 模块基础 模块使用方式 自定义模块示例 模块的有条件执行 Python包结构 定义和导入包 常用第三方库及安装 实例代码 第三方库自动安装脚本 Python标准库介绍 PyInstaller 小结 实验 1.(基础题)制作文本进度条。 2.(基础题) 蒙特卡罗方法计算圆周率…

nginx正向代理、反向代理、负载均衡

nginx.conf nginx首要处理静态页面 反向代理 动态请求 全局模块 work processes 1; 设置成服务器内核数的两倍&#xff08;一般不不超过8个超过8个反而会降低性能一般4个 1-2个也可以&#xff09; netstat -antp | grep 80 查端口号 *1、events块&#xff1a;* 配置影响ngi…

深度学习基础:Numpy 数组包

数组基础 在使用导入 Numpy 时&#xff0c;通常给其一个别名 “np”&#xff0c;即 import numpy as np 。 数据类型 整数类型数组与浮点类型数组 为了克服列表的缺点&#xff0c;一个 Numpy 数组只容纳一种数据类型&#xff0c;以节约内存。为方便起见&#xff0c;可将 Nu…

Linux多线程编程-生产者与消费者模型详解与实现(C语言)

1.什么是生成者与消费者模型 生产者-消费者模型是并发编程中的经典问题&#xff0c;描述了多个线程&#xff08;或进程&#xff09;如何安全、有效地共享有限的缓冲区资源。在这个模型中&#xff0c;有两种角色&#xff1a; 生产者&#xff08;Producer&#xff09;&#xff1…

Docker 安装ros 使用rviz 等等图形化程序

Docker 安装ros 使用rviz 等等图形化程序 ubuntu 版本与ros 发行版本对应 如何安装其它版本ros 此时考虑使用docker 易于维护 地址&#xff1a; https://hub.docker.com/r/osrf/ros 我主机是 ubuntu22.04 使用这个标签 melodic-desktop-full 1 clone 镜像到本机 docker pu…

OpenCV:python图像旋转,cv2.getRotationMatrix2D 和 cv2.warpAffine 函数

前言 仅供个人学习用&#xff0c;如果对各位朋友有参考价值&#xff0c;给个赞或者收藏吧 ^_^ 一. cv2.getRotationMatrix2D(center, angle, scale) 1.1 参数说明 parameters center&#xff1a;旋转中心坐标&#xff0c;是一个元组参数(col, row) angle&#xff1a;旋转角度…

html(抽奖设计)

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>抽奖</title><style type"text/css">* {margin: 0;padding: 0;}.container {width: 800px;height: 800px;border: 1px dashed red;position: absolut…

<数据集>光伏板缺陷检测数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;2400张 标注数量(xml文件个数)&#xff1a;2400 标注数量(txt文件个数)&#xff1a;2400 标注类别数&#xff1a;4 标注类别名称&#xff1a;[Crack,Grid,Spot] 序号类别名称图片数框数1Crack8688922Grid8248843S…

近期几首小诗汇总-生活~卷

生活 为生活飘零&#xff0c;风雨都不阻 路见盲人艰&#xff0c;为她心点灯 贺中科大家长论坛成立十五周年 科学家园有喜贺 园外丑汉翘望中 曾一学子入我科 正育科二盼长大 憧憬也能入此家 与科学家论短长 园外翘首听高论 发现有隙入此坛 竟然也能注册成 入园浏览惶然立 此贴…

零信任的架构结合模块化沙箱,实现一机两用的解决方案

零信任沙箱是深信达提出的一种数据安全解决方案&#xff0c;它将零信任原则与SDC沙箱技术的优势相结合。零信任原则是一种安全概念&#xff0c;核心思想是“永不信任&#xff0c;总是验证”。它要求对每一个访问请求都进行严格的身份验证和授权&#xff0c;无论请求来源于内部还…

Qt Quick qml自定义控件:qml实现电池控件

qml入门进阶专栏地址:https://blog.csdn.net/yao_hou/category_9951228.html?spm=1001.2014.3001.5482 本篇博客介绍如何使用qml来实现电池控件,效果图如下: 下面给出实现代码 Battery.qml /*电池组件*/import QtQuick 2.15 import QtQuick.Controls 2.15Rectangle {id: b…