#include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <curses.h> int main() { int i; initscr(); if (!has_colors()) //是否支持秀色显示 { endwin(); fprintf (stderr,"Error - no color support on this terminal/n"); exit(1); } if (start_color() != OK) //初始化颜色 { endwin(); fprintf(stderr,"Error - could not initialize colors/n"); exit(2); } clear(); mvprintw(5,5,"There are %d COLORS,and %d COLOR_PAIRS available",COLORS,COLOR_PAIRS); refresh(); init_pair(1,COLOR_RED,COLOR_BLACK);//将红色前景绿色背景定义为一号颜色组合 init_pair(2,COLOR_RED,COLOR_GREEN); init_pair(3,COLOR_GREEN,COLOR_RED); init_pair(4,COLOR_YELLOW,COLOR_BLUE); init_pair(5,COLOR_BLACK,COLOR_WHITE); init_pair(6,COLOR_MAGENTA,COLOR_BLUE); init_pair(7,COLOR_CYAN,COLOR_WHITE); for(i = 1;i<=7;i++) { attroff(A_BOLD);//关闭属性 A_BOLD 高亮度 attrset(COLOR_PAIR(i)); // color_pair 颜色组合作为字符属性来访问 /* attrset 先将属性设定为正常模式 */ mvprintw(5+i,5,"Color pair %d",i); attrset(COLOR_PAIR(i) | A_BOLD); mvprintw(5+i,25,"Bold color pair %d",i); refresh(); sleep(1); } endwin(); exit(EXIT_SUCCESS); }