我正在构建一个字典,当我打印(输出)单词防御时,我想用粗体打印单词本身.当我打印
cout<<word<<endl<<defention1<<defenition2<<endl;
Run Code Online (Sandbox Code Playgroud)
我希望唯一的"字"是大胆的.
我怎样才能做到这一点?
vso*_*tco 17
标准C++使用各种区域设置/字符集以各种字母表显示输出.但是,文本本身只是文本,没有格式化.
如果您希望输出为
colored或bold,或者italicized,则需要向终端发送适当的字符代码.
但是,这是实现定义的,并不保证可以在所有平台上运行.
适用于我的Mac OS X的示例:
#include <iostream>
int main()
{
std::cout << "\e[1mBold\e[0m non-bold" << std::endl; // displays Bold in bold
}
Run Code Online (Sandbox Code Playgroud)
如果你愿意,你可以采取额外步骤并创建操纵器来打开/关闭加粗:
#include <iostream>
std::ostream& bold_on(std::ostream& os)
{
return os << "\e[1m";
}
std::ostream& bold_off(std::ostream& os)
{
return os << "\e[0m";
}
int main()
{
std::cout << bold_on << "bold" << bold_off << " non-bold" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
标准c++不能输出任何格式的文本。但是,可以以粗体甚至不同颜色输出您的字符串。这取决于您使用的操作系统和您运行的终端/控制台。
例如,在Window 的控制台中,无法以粗体书写文本。
如果您使用的是Linux/Unix,那么在大多数终端模拟器和虚拟控制台中,您可以将字符串以粗体书写,甚至可以为其选择颜色,只需\e[1m在字符串之前和\e[0m字符串之后添加以确保其他字符串不会是粗体。
\e 是转义符。在 Vim 中,您只需按 即可编写它ctrl + v + esc。
这是 Linux/Unix 的一个简单示例(Mac 也是 Unix):
char esc_char = 27; // the decimal code for escape character is 27
cout << esc_char << "[1m" << "Hello Bold!" << esc_char << "[0m" << endl;
Run Code Online (Sandbox Code Playgroud)