首页 > 解决方案 > 如何在 cout 中定义我自己的特殊字符

问题描述

例如 :

cout << "  hello\n400";

将打印:

  hello
400

另一个例子:

cout << "  hello\r400";

将打印:

400ello

有一个选项可以定义我自己的特殊字符吗?我想做一些像:

cout << "  hello\d400";

会给:

  hello
  400

(/ d 是我的特殊字符,我已经获得了将标准输出光标向下移动一行的功能(cursorDown()),但我只是不知道如何定义一个特殊字符,每次写入都会调用我的cursorDown() 函数)

标签: c++stdoutcursor-position

解决方案


正如其他人所说,您无法让 cout 理解用户定义的字符,但是您可以做的是

  • std::cout 是一个 std::ostream 类型的对象,它重载了 operator<<。您可以创建一个结构对象,该对象在使用类似于任何日志流的 ostream 将字符串打印到文件或控制台之前解析您的字符串以查找特殊字符和其他用户定义的字符。 例子

或者

  • cout << "something\dsomething" 您可以调用一个方法special_cout(std::string);来解析用户定义字符的字符串并执行调用,而不是调用。

推荐阅读