我怎样给一个应该是c++代码输出的文本加下划线呢?我在网上看到这个:
cout<<underline<<"This is the text which is going to be underlined.";
但是,对我来说,这个“下划线”是行不通的。任何想法都是非常欢迎的。
a5g8bdjr1#
您正在输出到ANSI终端吗?如果是这样,下面的转义序列应该有效:
#define underline "\033[4m"
More information on ANSI escape sequences is available here.注意:要再次关闭下划线,请使用"\033[24m"。
"\033[24m"
rjee0c152#
也许最简单和最便携的方法就是这样:
cout << "This is the text which is going to be underlined." << endl; cout << "-------------------------------------------------" << endl;
vzgqcmou3#
下面是一个为G++编写的扩展示例:
#include <iostream> using namespace std; int main() { char normal[]={0x1b,'[','0',';','3','9','m',0}; char black[]={0x1b,'[','0',';','3','0','m',0}; char red[]={0x1b,'[','0',';','3','1','m',0}; char green[]={0x1b,'[','0',';','3', '2','m',0}; char yellow[]={0x1b,'[','0',';','3', '3', 'm',0}; char blue[]={0x1b,'[','0',';','3','4','m',0}; char Upurple[]={0x1b,'[','4',';','3','5','m',0}; char cyan[]={0x1b,'[','0',';','3','6','m',0}; char lgray[]={0x1b,'[','0',';','3','7','m',0}; char dgray[]={0x1b,'[','0',';','3','8','m',0}; char Bred[]={0x1b,'[','1',';','3','1','m',0}; //for bold colors, just change the 0 after the [ to a 1 //for underlined colors, just change the 0 after the [ to a 4 cout<<"This text is "<<black<<"Black "<<red<<"Red "; cout<<green<<"Green "<<yellow<<"Yellow "<<blue<<"Blue\n"; cout<<Upurple<<"Underlined Purple "<<cyan<<"Cyan "; cout<<lgray<<"Light Gray "<<dgray<<"Dark Gray "; cout<<Bred<<"and Bold Red."<<normal<<"\n"; return 0; }
cwdobuhd4#
为了完成Paul R的回答,我有时会在控制台程序中创建以下函数:
std::string underline(const std::string &s) { return std::string(s.length(), '-'); }
然后您可以:
int main() { constexpr auto TEXT = "I am underlined"; std::cout << TEXT << std::endl << underline(TEXT) << std::endl; return 0; }
其他可能性:
void underlineAndDisplay(const std::string &s); std::string underlineWith(const std::string &s, char c);
好吧,让我们回到我的代码...
4条答案
按热度按时间a5g8bdjr1#
您正在输出到ANSI终端吗?如果是这样,下面的转义序列应该有效:
More information on ANSI escape sequences is available here.
注意:要再次关闭下划线,请使用
"\033[24m"
。rjee0c152#
也许最简单和最便携的方法就是这样:
vzgqcmou3#
下面是一个为G++编写的扩展示例:
cwdobuhd4#
为了完成Paul R的回答,我有时会在控制台程序中创建以下函数:
然后您可以:
其他可能性:
好吧,让我们回到我的代码...