当前位置: 首页 > article >正文

彩色控制台,自动换行...学习个新概念:流操控器![more cpp--11]

孩子们,我回来了。先看看今天我又学了什么CPP的没啥用新特性。彩色的控制台!
还有很多的新花样!
在这里插入图片描述
事情要从去年八月讲起,我那个时候在研究流函数,写了一些比较愚笨的代码。
为什么要研究这个呢?虽然我们的CPP比C的打印函数好的一点就是,不用写转义字符。但是有的时候,为了打印的整洁一点,还得控制字符,那可是两个运算,还有一个引号,还有控制内容啊!!!众所周知,程序员是最懒的,所以我一直在探寻解决方法。今年总算是得到一个不错的解答了。特此整理为文章,分享于大家

流的第一篇文章,友元的实现

流的第二篇文章,类的实现

不想看也没啥问题,大致的思路总计如下

自定义流运算符号

#include <iostream>
#include <fstream>
using namespace std;// 定义 Blank 类
class Blank {
public:// 重载 << 运算符friend ostream& operator<<(ostream& os, const Blank& b) {os << "\t";return os;}
}blank;int main() {string name = "Alice";string ega = "Engineer";cout << name << blank << ega << endl; // 输出: Alice    Engineerreturn 0;
}

但是这样不够优雅,因为我们定义了一个类,还有类的对象,有些太麻烦了。我们完全可以使用函数来完成这个

// 定义 blank 函数
ostream& blank(ostream& os) {os << "\t";return os;
}int main() {string name = "Alice";string ega = "Engineer";cout << name << blank << ega << endl; // 输出: Alice    Engineerreturn 0;
}

流操纵器

我们第二个其实是写了一个流操纵器(这是一个新概念)。流操纵器是一些特殊的函数,它们可以直接插入到流中来修改流的状态或输出特定的格式。

#include <iostream>
#include <iomanip> // 包含流操纵器的头文件
using namespace std;int main() {int num = 255;double pi = 3.141592653589793;// 使用 hex、dec、oct 流操纵器cout << "Decimal: " << dec << num << endl;cout << "Hexadecimal: " << hex << num << endl;cout << "Octal: " << oct << num << endl;// 使用 setw 和 setprecision 流操纵器cout << "Pi (default precision): " << pi << endl;cout << "Pi (setprecision(5)): " << setprecision(5) << pi << endl;cout << "Pi (setw(10)): " << setw(10) << pi << endl;return 0;
}
ecimal: 255
Hexadecimal: ff
Octal: 377
Pi (default precision): 3.14159
Pi (setprecision(5)): 3.1416
Pi (setw(10)):     3.1416

打印彩色字体

#include <iostream>
#include <iomanip> // 包含流操纵器的头文件
using namespace std;// 定义颜色流操纵器
ostream& red(ostream& os) {os << "\033[31m"; // 设置红色return os;
}ostream& green(ostream& os) {os << "\033[32m"; // 设置绿色return os;
}ostream& reset(ostream& os) {os << "\033[0m"; // 重置颜色return os;
}int main() {// 使用颜色流操纵器cout << red << "This text is red." << reset << endl;cout << green << "This text is green." << reset << endl;return 0;
}

效果就是如开头那样
流操控器可以实现不错的代码封装效果。大家可以好好探索一下

在这里插入图片描述

相关文章:

彩色控制台,自动换行...学习个新概念:流操控器![more cpp--11]

孩子们&#xff0c;我回来了。先看看今天我又学了什么CPP的没啥用新特性。彩色的控制台&#xff01; 还有很多的新花样&#xff01; 事情要从去年八月讲起&#xff0c;我那个时候在研究流函数&#xff0c;写了一些比较愚笨的代码。 为什么要研究这个呢&#xff1f;虽然我们的C…...

基于单片机的盲人智能水杯系统(论文+源码)

1 总体方案设计 本次基于单片机的盲人智能水杯设计&#xff0c;采用的是DS18B20实现杯中水温的检测&#xff0c;采用HX711及应力片实现杯中水里的检测&#xff0c;采用DS1302实现时钟计时功能&#xff0c;采用TTS语音模块实现语音播报的功能&#xff0c;并结合STC89C52单片机作…...

TensorFlow 示例摄氏度到华氏度的转换(一)

TensorFlow 实现神经网络模型来进行摄氏度到华氏度的转换&#xff0c;可以将其作为一个回归问题来处理。我们可以通过神经网络来拟合这个简单的转换公式。 1. 数据准备与预处理 2. 构建模型 3. 编译模型 4. 训练模型 5. 评估模型 6. 模型应用与预测 7. 保存与加载模型 …...

win10部署本地deepseek-r1,chatbox,deepseek联网(谷歌网页插件Page Assist)

win10部署本地deepseek-r1&#xff0c;chatbox&#xff0c;deepseek联网&#xff08;谷歌网页插件Page Assist&#xff09; 前言一、本地部署DeepSeek-r1step1 安装ollamastep2 下载deepseek-r1step2.1 找到模型deepseek-r1step2.2 cmd里粘贴 后按回车&#xff0c;进行下载 ste…...

【memgpt】letta 课程6: 多agent编排

Lab 6: Multi-Agent Orchestration 多代理协作 letta 是作为一个服务存在的,app通过restful api 通信 多智能体之间如何协调与沟通? 相互发送消息共享内存块,让代理同步到不同的服务的内存块...

Java 大视界 -- Java 大数据在自动驾驶中的数据处理与决策支持(68)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

【Linux】opencv在arm64上提示找不到libjasper-dev

解决opencv在arm64上提示找不到libjasper-dev的问题。 本文首发于❄慕雪的寒舍 问题说明 最近我在尝试编译opencv&#xff0c;安装依赖项libjasper1和libjasper-dev的时候就遇到了这个问题。在amd64平台上&#xff0c;我们可以通过下面的命令安装&#xff08;ubuntu18.04&…...

计算机组成原理——存储系统(一)

在人生的道路上&#xff0c;成功与失败交织成一幅丰富多彩的画卷。不论我们是面对胜利的喜悦&#xff0c;还是遭遇失败的痛苦&#xff0c;都不能放弃对梦想的追求。正是在这种追求中&#xff0c;我们不断地超越自我&#xff0c;不断地突破自己的极限。只有勇往直前&#xff0c;…...

【LLM-agent】(task4)搜索引擎Agent

note 新增工具&#xff1a;搜索引擎Agent 文章目录 note一、搜索引擎AgentReference 一、搜索引擎Agent import os from dotenv import load_dotenv# 加载环境变量 load_dotenv() # 初始化变量 base_url None chat_model None api_key None# 使用with语句打开文件&#xf…...

LabVIEW在电机自动化生产线中的实时数据采集与生产过程监控

在电机自动化生产线中&#xff0c;实时数据采集与生产过程监控是确保生产效率和产品质量的重要环节。LabVIEW作为一种强大的图形化编程平台&#xff0c;可以有效实现数据采集、实时监控和自动化控制。详细探讨如何利用LabVIEW实现这一目标&#xff0c;包括硬件选择、软件架构设…...

Baklib揭示内容中台与人工智能技术的创新协同效应

内容概要 在当今信息爆炸的时代&#xff0c;内容的高效生产与分发已成为各行业竞争的关键。内容中台与人工智能技术的结合&#xff0c;为企业提供了一种新颖的解决方案&#xff0c;使得内容创造的流程更加智能化和高效化。 内容中台作为信息流动的核心&#xff0c;能够集中管…...

18.Word:数据库培训课程❗【34】

目录 题目 NO1.2.3.4 NO5设置文档内容的格式与样式 NO6 NO7 NO8.9 NO10.11标签邮件合并 题目 NO1.2.3.4 FnF12&#xff1a;打开"Word素材.docx”文件,将其另存为"Word.docx”在考生文件夹下之后到任务9的所有操作均基于此文件&#xff1a;"Word.docx”…...

git多人协作

目录 一、项目克隆 二、 1、进入克隆仓库设置 2、协作处理 3、冲突处理 4、多人协作分支的推送拉取删除 1、分支推送&#xff08;2种&#xff09; 2、远程分支拉取&#xff08;2种&#xff09; 3、远程分支删除 一、项目克隆 git clone 画船听雨眠/test1 (自定义的名…...

团体程序设计天梯赛-练习集——L1-030 一帮一

前言 一道15分的题目&#xff0c;难度还可以&#xff0c;题目的内容都在幻想中&#xff0c;看题 L1-030 一帮一 “一帮一学习小组”是中小学中常见的学习组织方式&#xff0c;老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个…...

什么是线性化PDF?

线性化PDF是一种特殊的PDF文件组织方式。 总体而言&#xff0c;PDF是一种极为优雅且设计精良的格式。PDF由大量PDF对象构成&#xff0c;这些对象用于创建页面。相关信息存储在一棵二叉树中&#xff0c;该二叉树同时记录文件中每个对象的位置。因此&#xff0c;打开文件时只需加…...

DRM系列四:初始化drm设备--drm_dev_init

本系列文章基于linux 5.15 一、drm_dev_alloc 用于分配并初始化一个新的 DRM 设备(即drm_device),初始化主要调用drm_dev_init函数 1.1drm_dev_init drm_device的初始化操作&#xff0c;但是并不会注册&#xff0c;函数定义在drivers/gpu/drm/drm_drv.c 其主要的作用&#…...

SpringMVC的参数处理

一、参数接收 1.使用servlet API接收参数 在方法参数中添加HttpServletRequest类型的参数&#xff0c;然后就可以像servlet的方法一样来接收参数 2.在方法中定义同名参数 如果url地址中的参数名与方法的参数名不一致时&#xff0c;可以使用RequestParam注解进行重新关联 url地…...

一觉醒来全球编码能力下降100000倍,新手小白的我决定科普C语言——函数

1. 函数的概念 数学中我们其实就⻅过函数的概念&#xff0c;⽐如&#xff1a;⼀次函数 y kx b &#xff0c;k和b都是常数&#xff0c;给⼀个任意的 x&#xff0c;就得到⼀个y值。其实在C语⾔也引⼊函数&#xff08;function&#xff09;的概念&#xff0c;有些翻译为&#xf…...

台账思维和GIS思维在资产管理中的不同模式

最近一些习惯用台账统计资产的网友聊天引发一些感想和大家分享一下&#xff1a;传统台账思维注重统计资产的数量及信息完整性&#xff0c;而GIS除了关心前两个指标外&#xff0c;更注重数据与现实世界是否能一一对应&#xff0c;即数据的现实准确性&#xff01; 例如&#xff1…...

AI-ISP论文Learning to See in the Dark解读

论文地址&#xff1a;Learning to See in the Dark 图1. 利用卷积网络进行极微光成像。黑暗的室内环境。相机处的照度小于0.1勒克斯。索尼α7S II传感器曝光时间为1/30秒。(a) 相机在ISO 8000下拍摄的图像。(b) 相机在ISO 409600下拍摄的图像。该图像存在噪点和色彩偏差。©…...

性能优化2-删除无效引用

依赖错综复杂&#xff0c;如何判断是有效依赖 1. package.json webpack升到3以后&#xff0c;未使用的dependence不会被打包&#xff1b;devDependence和dependence基本没啥区别&#xff1b;即生产依赖放入dev中&#xff0c;也能正常打包&#xff1b;但我们仍需遵守依赖的放置…...

Kafka SASL/PLAIN介绍

文章目录 Kafka SASL/PLAIN介绍1. SASL/PLAIN 简介2. 配置步骤&#xff08;1&#xff09;Kafka 服务器端配置&#xff08;2&#xff09;Kafka 客户端配置&#xff08;3&#xff09;测试连接 3. 认证过程3.1 SASL/PLAIN 认证工作原理3.2 认证过程描述 4. 安全性考虑4.1 SASL/PLA…...

Unbutu虚拟机+eclipse+CDT编译调试环境搭建

问题1: 安装CDT&#xff0c;直接Help->eclipse Market space-> 搜cdt , install&#xff0c;等待重启即可. 问题2&#xff1a;C变量不识别vector ’could not be resolved 这是库的头文件没加好&#xff0c;右键Properties->C Build->Enviroment&#xff0c;增加…...

G. XOUR

题目链接&#xff1a;Problem - G - Codeforces 题目大意&#xff1a;给你一个n长的序列&#xff0c; 其中你可以将a[i] XOR a[j] 的值 严格小于4的数对进行交换。 你可以操作任何几次&#xff0c; 让最后的数列最小。如果在 x 和 y 不同的第一个位置&#xff0c; xi<yi &…...

利用metaGPT多智能体框架实现智能体-1

1.metaGPT简介 MetaGPT 是一个基于大语言模型&#xff08;如 GPT-4&#xff09;的多智能体协作框架&#xff0c;旨在通过模拟人类团队的工作模式&#xff0c;让多个 AI 智能体分工合作&#xff0c;共同完成复杂的任务。它通过赋予不同智能体特定的角色&#xff08;如产品经理、…...

[CVPR 2024] AnyDoor: Zero-shot Object-level Image Customization

github.com/ali-vilab/AnyDoor.写在前面&#xff1a; 【论文速读】按照#论文十问#提炼出论文核心知识点&#xff0c;方便相关科研工作者快速掌握论文内容。过程中并不对论文相关内容进行翻译。博主认为翻译难免会损坏论文的原本含义&#xff0c;也鼓励诸位入门级科研人员阅读文…...

高可用 Keepalived 服务部署流程

一、配置文件 vim /etc/keepalived/keepalived.confGLOBAL CONFIGURATION --- 全局配置部分VRRPD CONFIGURATION --- VRRP协议配置部分LVS CONFIGURATION --- LVS服务管理配置部分[rootlb01 ~]# cat /etc/keepalived/keepalived.…...

文件系统分析

文件系统与磁盘管理详解 一、存储设备基础 1. 存储设备类型对比 设备类型特点典型接口应用场景机械硬盘依赖磁头机械读写&#xff0c;转速影响性能&#xff08;5400/7200/10000rpm&#xff09;&#xff0c;价格低容量大SATA/SAS冷数据存储、备份固态硬盘无机械结构&#xff…...

JS面相对象小案例:自定义安全数组

在JS中&#xff0c;数组不像其他语言&#xff08;java、python&#xff09;中那样安全&#xff0c;它具有动态性和弱类型性&#xff0c;切越界访问没有具体的报错&#xff0c;而是返回空&#xff0c;为提升数组的安全性&#xff0c;我们可以自行定义一个安全数组。 一、增加报…...

Microsoft Power BI:融合 AI 的文本分析

Microsoft Power BI 是微软推出的一款功能强大的商业智能工具&#xff0c;旨在帮助用户从各种数据源中提取、分析和可视化数据&#xff0c;以支持业务决策和洞察。以下是关于 Power BI 的深度介绍&#xff1a; 1. 核心功能与特点 Power BI 提供了全面的数据分析和可视化功能&…...