在Linux中着色的控制台输出

我刚开始学习编程,第一个问题是select在哪个平台上学习,我select了Ubuntu。 我find了一个GCC编译器来编译我的项目,对我来说工作得很好。 我正在通过terminal运行我编译的项目。 但是当我想要写一个必须在丰富多彩的背景下显示文本的程序时,我明白terminal不能帮助我。 其实我正在学习从Windows上编程的课程,他们在那里使用Borland C ++ 5.2,但这些课程是在2007年编写的

所以我想知道,我应该在Ubuntu 10.10中运行我的编译程序,正确地查看结果? 其实我试图转移到Windows,但在我的电脑上的Ubuntu工作速度更快,我认为在Ubuntu而不是Windows工作更容易。

Solutions Collecting From Web of "在Linux中着色的控制台输出"

在没有任何工具包的情况下打印彩色信息最简单的方法是使用VT100转义命令: http : //www.termsys.demon.co.uk/vtansi.htm#colors

所以你可以写这样的东西:

printf("\x1b[31mThis is red text\x1b[0m\n"); printf("\x1b[32mThis is green text\x1b[0m\n"); 

但是这个代码只适用于兼容VT100的终端(几乎所有Unix系统的终端)。 最好的方法是在着色输出之前检查TERM环境变量。

免责声明:如果你想编写所有终端类型的代码,那么你应该使用类似ncurses的库。

ncurses库正是你正在寻找。 使用这个库,你可以选择用任何文本/背景颜色在屏幕上的任何地方写任何文本。

你可以在维基百科上阅读更多。 你可以在Ubuntu下安装它:

 $ sudo apt-get install libncurses5-dev 

如果你想从Linux的GUI编程开始,你可能需要研究一个GUI工具包 ,它是一个用于编写GUI元素,小部件等的库。

其中一个工具包是Gtk,你可以通过Gtk教程开始学习。 另一个选择是Qt ,它可能更容易使用,但是基于C ++。

恐怕Borland C ++ Windows课程对于Linux GUI编程来说几乎是不可用的。

或者,如果你只是想要一个彩色的终端文本,看看这个问题: stdlib和C中的彩色输出

强烈推荐Linux上的vim + cscope +标签。