c++ - 如何在 cout 中定义我自己的特殊字符
问题描述
例如 :
cout << " hello\n400";
将打印:
hello
400
另一个例子:
cout << " hello\r400";
将打印:
400ello
有一个选项可以定义我自己的特殊字符吗?我想做一些像:
cout << " hello\d400";
会给:
hello
400
(/ d 是我的特殊字符,我已经获得了将标准输出光标向下移动一行的功能(cursorDown()),但我只是不知道如何定义一个特殊字符,每次写入都会调用我的cursorDown() 函数)
解决方案
正如其他人所说,您无法让 cout 理解用户定义的字符,但是您可以做的是
- std::cout 是一个 std::ostream 类型的对象,它重载了 operator<<。您可以创建一个结构对象,该对象在使用类似于任何日志流的 ostream 将字符串打印到文件或控制台之前解析您的字符串以查找特殊字符和其他用户定义的字符。 例子
或者
cout << "something\dsomething"
您可以调用一个方法special_cout(std::string);
来解析用户定义字符的字符串并执行调用,而不是调用。
推荐阅读
- macos - Qt如何控制mac上的摄像头?
- excel - 是否可以在公式中使用单元格
- wordpress - 小部件未显示在 wordpress woocomerce 网站的商店页面上
- docker - 为什么我的 cgroup 写入吞吐量不受限制?
- c# - 如何编写脚本来自动化手动添加 services.DbContext 到 startup.cs 的过程?
- appx - 由于此问题,无法下载 Appx 文件
- graphql - NestJS GraphQL 联合循环解析器
- java - 具有错字容忍度、计数、特定于用户等的列表的高级过滤?
- node.js - 有没有办法fetchLess?阿波罗分页
- javascript - 如何从 OAuth2 获取公会