【发布时间】:2019-08-15 17:28:40
【问题描述】:
我正在编写代码,我正在使用 ncurses 和 stringstreams (C++)。
我想(仅)打印负数的红色数字和正数的绿色数字。
根据程序的结构,我对整个输出使用单个字符串流。所以如果我改变颜色:
start_color();
init_pair(1, COLOR_RED, COLOR_BLACK);
init_pair(2, COLOR_GREEN, COLOR_BLACK);
attron(COLOR_PAIR(1));
它为所有输出着色(我只想对数字着色)。 我也尝试过使用 ANSI 代码,但它不适用于 ncurses。
我的代码是这样的:
stringstream_var.clear();
stringstream_var.str(std::string());
if (num1 < 0){
//I just want to print num1 in red
stringstream_var << "Number 1: " << num1 << std::endl;
}else{
//I just want to print num1 in green
stringstream_var << "Number 1: " << num1 << std::endl;
}
我怎样才能做到这一点?
有可能吗?
【问题讨论】:
-
那么,如果我理解得很好,那么您将使用 ncurses 原语一次性将 stingstream_var 打印到终端?你想让大字符串的一些子字符串有不同的颜色吗?
标签: c++ colors ncurses stringstream