【问题标题】:In a C/C++ program, how can I write bold text in the terminal? [duplicate]在 C/C++ 程序中,如何在终端中写入粗体文本? [复制]
【发布时间】:2014-06-20 05:59:50
【问题描述】:

是否可以格式化 C/C++ 程序的控制台输出,例如用粗体书写?我说的只是控制台输出(所以没有高级别的)例如:

std::cout << "\b this is bold";
std::cout << " this is not";

我希望有一些库,这个程序是为 Linux 设计的。

感谢您的建议。

【问题讨论】:

  • @AlexandruCimpanu,这不是控制台输出。
  • 我把问题加红后查看了接受的答案:C++中没有粗体文​​本的概念,可能在特定的设备中显示字符文本,例如富文本- 格式或 HTML 标记或终端屏幕。后者通常涉及发送一些与特定终端相关的“转义序列”。
  • 这取决于您的终端/控制台:最广泛使用的转义码可能是ANSI、vt100/220、xterm 等使用的转义码:“\033[1m粗体\033[0m不是粗体”。
  • 嗯,我记得能够以粗体书写的终端程序(例如在 DOS 中)。这是因为 C/C++ 还是使用 Bash/Batch 完成的技巧?
  • @user3085931:“必须是某种标准”——如果你想要检测它是否受支持的能力,我建议你使用 ncurses——它利用“数据库”跟踪哪些功能可用数以千计的终端。

标签: c++ c console formatting


【解决方案1】:

这不是关于 C 或 C++ 的问题,而是关于您的特定控制台的问题。任何答案都特定于您的目标,并且可能在 Linux 中依赖于特定的特定终端仿真器。

在大多数情况下,终端、终端仿真或在 Windows 中为控制台窗口的情况下,将不支持粗体,但您通常可以控制固定字体的颜色和亮度。您可以通过多种方式执行此操作 - 再次是特定于平台的 - 例如通过诸如 curses 之类的库、发送特定于终端的转义序列或在 Windows 中通过 Win32 控制台 API。

在不知道具体平台的情况下,不可能给出具体的答案,即便如此,这个答案也可能无法移植到其他平台。

【讨论】:

  • 感谢您的回答。在 Top 帖子中,我说它适用于 Linux 机器上控制台中的 C/C++ 程序。
  • @user3085931 :所以你做到了。在问题的早期建立环境总是一个好主意 - 不是每个人都会读到底! ;-) 在这种情况下,最重要的因素比语言更重要。
猜你喜欢
  • 2023-01-24
  • 1970-01-01
  • 1970-01-01
  • 2020-10-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多