2012-07-26 131 views
3

我刚开始学习C编程。 第一个问题是选择在哪个平台上学习,我选择了Ubuntu。 我发现了一个GCC编译器来编译我的项目,它对我来说工作得很好。我正在通过Terminal运行我编译的项目。 但是当我想写一个必须在彩色背景上显示文本的程序时,我明白终端并不帮助我。其实我正在学习从Windows编程编写的课程,他们在那里使用Borland C++ 5.2,但这些课程写在2007年Linux中的彩色控制台输出

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

回答

1

如果你想开始在Linux的GUI编程,你可能不得不考虑的一个GUI toolkits,这是编写GUI元素,小工具库等

其中一个toolkints是基于GTK,您可以通过Gtk tutorial开始学习。另一种选择是Qt这可能更易于使用,但是它基于C++。

恐怕Borland C++ Windows课程在Linux GUI编程中几乎不可用。

或者,如果你只是想有色终端文本,看看这个问题:stdlib and colored output in C

+0

感谢您的回答。但实际上我只想运行一个用C语言编写的项目,其中包含丰富多彩的文本。就像Borland C++一样,编译完成后,当你运行它时,它会在另一个窗口中打开,并且背景为黑色,如果你的程序包含改变背景颜色的代码,它将会。但是当你在ubuntu的终端上这样做时,你不会得到这个结果 – 454b 2012-07-26 15:48:25

+0

@EmiLazE:哦,改变背景颜色是可能的。查看我添加的链接。 – che 2012-07-26 15:52:03

+0

你知道,我想在Ubuntu上这样做:http://ipg.h1.ru/lessons/ci/les18.files/2。gif – 454b 2012-07-26 15:53:28

3

ncurses库不正是你所期待的。使用此库,您可以选择使用任何文本/背景颜色在屏幕上的任何位置编写任何文本。

您可以在Wikipedia上阅读更多内容。你可以在Ubuntu下安装它:

$ sudo apt-get install libncurses5-dev 
-3

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

5

打印彩色消息没有任何工具最简单的方法是使用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类库。