使用C语言打印彩色的文本到命令行

C、C++和Java语言
回复
头像
liu滔
帖子: 7211
注册时间: 2010-10-09 23:01
送出感谢: 5 次
接收感谢: 14 次

使用C语言打印彩色的文本到命令行

#1

帖子 liu滔 » 2011-01-02 20:41

用过grep命令的都知道,文本是可以彩色的——就算只用过ls命令、甚至只要用过bash就应该知道了!那么,那些局部的彩色文本到底是怎么实现的呢?请大虾们不吝赐教~ :em11
头像
tangboyun
帖子: 701
注册时间: 2009-07-25 1:57
送出感谢: 5 次
接收感谢: 13 次
联系:

Re: 使用C语言打印彩色的文本到命令行

#2

帖子 tangboyun » 2011-01-02 22:33

是要在终端里实现花样显示么?
注意是终端,也就是必须要支持这样显示的终端才可以。

办法有两种,如果是C的话,
1、键入:
man console_codes
这样可以查阅一些终端的通用的一些escape字符组合,终端就是用这些escape字符组合来做到彩色显示,更改字体前景或者背景色,加下划线这些功能的。
这种做法的限制是,linux下终端类型很多,通用的escape字符不多。在终端间没有可移植性。优点是很容易实现,只要在输往标准输出的字符串中,掺入escapse字符组合就可以了,类似编辑html。

2、使用curse库,或者诸如ncurse之类衍生库。好处是可移植性好,抽象了各种终端,高级点的运用甚至可以在终端内实现简陋GUI的界面,缺点就是要读相关库的api文档。
https://github.com/tangboyun
http://tangboyun.is-programmer.com/
提问的智慧————Eric Steven Raymond
回答的智慧————Andrew Clarke
吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。
急急急标题什么的,最讨厌了!
急急复急急,急急何其多,我生待急急,万事急急急。
头像
liu滔
帖子: 7211
注册时间: 2010-10-09 23:01
送出感谢: 5 次
接收感谢: 14 次

Re: 使用C语言打印彩色的文本到命令行

#3

帖子 liu滔 » 2011-01-02 23:29

tangboyun 写了:是要在终端里实现花样显示么?
注意是终端,也就是必须要支持这样显示的终端才可以。

办法有两种,如果是C的话,
1、键入:
man console_codes
这样可以查阅一些终端的通用的一些escape字符组合,终端就是用这些escape字符组合来做到彩色显示,更改字体前景或者背景色,加下划线这些功能的。
这种做法的限制是,linux下终端类型很多,通用的escape字符不多。在终端间没有可移植性。优点是很容易实现,只要在输往标准输出的字符串中,掺入escapse字符组合就可以了,类似编辑html。

2、使用curse库,或者诸如ncurse之类衍生库。好处是可移植性好,抽象了各种终端,高级点的运用甚至可以在终端内实现简陋GUI的界面,缺点就是要读相关库的api文档。
谢谢,第一种方法试过了,效果不满意,(主要是自己还没怎么认真试过)看来要研究一下第二种方法了 :em06 不过正好想过要学习curse库,那也就没关系了,谢谢你的指导…… :em11
头像
tangboyun
帖子: 701
注册时间: 2009-07-25 1:57
送出感谢: 5 次
接收感谢: 13 次
联系:

Re: 使用C语言打印彩色的文本到命令行

#4

帖子 tangboyun » 2011-01-03 0:16

现在用curses开发的人少了,放到10多年前,那就是超炫的了,

以前出过一本专门谈curses开发的书籍,当然现在肯定绝版了,那时候我还蛋疼的去买过翻印版本 :em02 (买了不少盗版绝版书),当然最后也只是翻翻了解了大概,没真去用。
UNIX/Linux下curses库开发指南
http://item.taobao.com/item.htm?id=2547898731
看了下那个铺子还在,你如果真要大手笔搞得花,可以参考下,胡乱玩玩看munual应该够了。
https://github.com/tangboyun
http://tangboyun.is-programmer.com/
提问的智慧————Eric Steven Raymond
回答的智慧————Andrew Clarke
吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。
急急急标题什么的,最讨厌了!
急急复急急,急急何其多,我生待急急,万事急急急。
头像
liu滔
帖子: 7211
注册时间: 2010-10-09 23:01
送出感谢: 5 次
接收感谢: 14 次

Re: 使用C语言打印彩色的文本到命令行

#5

帖子 liu滔 » 2011-01-03 18:12

tangboyun 写了:现在用curses开发的人少了,放到10多年前,那就是超炫的了,

以前出过一本专门谈curses开发的书籍,当然现在肯定绝版了,那时候我还蛋疼的去买过翻印版本 :em02 (买了不少盗版绝版书),当然最后也只是翻翻了解了大概,没真去用。
UNIX/Linux下curses库开发指南
http://item.taobao.com/item.htm?id=2547898731
看了下那个铺子还在,你如果真要大手笔搞得花,可以参考下,胡乱玩玩看munual应该够了。
没去看,关键在于看了也不一定会买,不舍得花那个钱,还是乖乖看man手册吧,应该有的吧~ :em06
头像
ouch_ouch
帖子: 217
注册时间: 2010-12-24 19:52
送出感谢: 0
接收感谢: 0

Re: 使用C语言打印彩色的文本到命令行

#6

帖子 ouch_ouch » 2011-02-13 15:43

看 man的 ,你们都是高手呀 :em11
顶人一帖,胜造七级浮屠。。。
头像
liu滔
帖子: 7211
注册时间: 2010-10-09 23:01
送出感谢: 5 次
接收感谢: 14 次

Re: 使用C语言打印彩色的文本到命令行

#7

帖子 liu滔 » 2011-02-15 21:10

ouch_ouch 写了:看 man的 ,你们都是高手呀 :em11
大哥,看man手册也是不是什么高手呀,只是耐心比较好而已~ :em09
回复

回到 “C/C++/Java”