为了账号安全,请及时绑定邮箱和手机立即绑定

UNIX中终端应用程序中的彩色文本

UNIX中终端应用程序中的彩色文本

C
呼如林 2019-11-22 16:01:22
我开始编写终端文本编辑器,类似于第一个UNIX文本编辑器,例如vi。我唯一的目标是度过美好的时光,但我希望能够以彩色显示文本,因此可以突出显示语法以编辑源代码。我该如何实现?为此有一些特殊的POSIX API,还是我必须使用ncurses?(我宁愿不)有什么建议吗?也许一些关于UNIX API的教科书?
查看完整描述

3 回答

?
萧十郎

TA贡献1815条经验 获得超12个赞

我觉得更优雅的不同解决方案

这是另一种方法。某些人会喜欢此代码,因为它的代码更简洁一些。没有%s和RESET颜色可以结束着色。


#include <stdio.h>


#define RED   "\x1B[31m"

#define GRN   "\x1B[32m"

#define YEL   "\x1B[33m"

#define BLU   "\x1B[34m"

#define MAG   "\x1B[35m"

#define CYN   "\x1B[36m"

#define WHT   "\x1B[37m"

#define RESET "\x1B[0m"


int main() {

  printf(RED "red\n"     RESET);

  printf(GRN "green\n"   RESET);

  printf(YEL "yellow\n"  RESET);

  printf(BLU "blue\n"    RESET);

  printf(MAG "magenta\n" RESET);

  printf(CYN "cyan\n"    RESET);

  printf(WHT "white\n"   RESET);


  return 0;

}

该程序提供以下输出:

//img1.sycdn.imooc.com//5dd795f80001807103870147.jpg

具有多种颜色的简单示例

这样,很容易执行以下操作:


printf("This is " RED "red" RESET " and this is " BLU "blue" RESET "\n");

该行产生以下输出:

//img1.sycdn.imooc.com//5dd795fd0001601603970059.jpg

查看完整回答
反对 回复 2019-11-22
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

您可能需要ANSI颜色代码。大多数* nix终端都支持它们。


查看完整回答
反对 回复 2019-11-22
  • 3 回答
  • 0 关注
  • 481 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信