Ncurses库
概述
什么是Ncurses库:
Ncurses是一个管理应用程序在字符终端显示的函数库,库中提供了创建窗口界面、移动光标、产生颜色、处理键盘按键等功能。
安装Ncurses库:
sudo apt-get install libncurses5-dev
头文件与编译:
头文件:#include <curses.h>
编译:gcc <.c文件> -l ncurses
相关函数
1、进入/退出
1.1 进入curses
该函数是curses模式的入口。将终端屏幕初始化为curses模式,为当前屏幕和相关的数据结构分配内存
WINDOW *initscr(void);
返回值:成功返回指向新创建的窗口的指针,失败返回NULL
1.2 退出curses
该函数是curses模式的出口,退出curses模式,释放curses子系统和相关数据结构占用的内存。
函数声明:
int endwin(void);
返回值:成功返回正数,失败返回负数
2、光标
2.1 设置光标是否可见
int curs_set(int visibility);
visibility:模式,0:光标不可见,1:光标可见
2.2 移动光标
int move(int y, int x);
y:指定的行,从0开始
x:指定的列,从0开始
2.3 在光标位置插入字符
//在光标处写入字符,但不显示在屏幕上
int addch(const chtype ch);
//刷新屏幕,使得写入的字符显示在屏幕上
int refresh(void);
ch:要添加的字符
2.4 获取光标位置的字符
chtype inch(void);
返回值:从光标位置获取到的值(ASCII码),使用时返回值强转为char型
3、键盘
3.1 允许使用功能键
功能键指的是键盘的F1~F12
int keypad(WINDOW *win, bool bf);
win:写为stdscr,代表操作当前界面
bf:写1,代表允许使用功能键
3.2 获取键盘输入
int getch(void);
返回值:从键盘上获取到的值(ASCII码)
3.3 关闭输入字符显示
int noecho(void);
4、颜色
4.1 启动颜色功能
int start_color(void);
启动color机制,初始化当前终端支持的所有颜色
4.2 配置颜色对
int init_pair(short pair, short f, short b);
pair:颜色对的编号,之后使用这个编号就可以设置相应的颜色
f:前景颜色的编号
b:背景颜色的编号
颜色 | 参数 |
黑色 | COLOR_BLACK |
红色 | COLOR_RED |
绿色 | COLOR_GREEN |
黄色 | COLOR_YELLOW |
蓝色 | COLOR_BLUE |
品红色 | COLOR_MAGENTA |
青色 | COLOR_CYAN |
白色 | COLOR_WHITE |
4.3 设置颜色
//设置颜色 并 启用属性设置
int attron(COLOR_PAIR(pair_number));
//设置颜色 并 关闭属性设置
int attroff(COLOR_PAIR(pair_number));
pair_number:颜色对编号
示例代码
具体代码实现如下:
#include <stdio.h>
#include <curses.h>
void Ncurses_Init(void);
int main(){
Ncurses_Init();
move(0,2);//光标移动到0行2列
attron(COLOR_PAIR(1));//设置颜色
addch('@');
refresh();
attroff(COLOR_PAIR(1));//取消设置颜色
while(1);
endwin();//退出Ncurses
return 0;
}
void Ncurses_Init(void){
initscr();//进入Ncurses
curs_set(0);//设置光标不可见
keypad(stdscr,1);//设置允许使用键盘功能键
noecho();//输入回显关闭
start_color();//启动颜色功能
init_pair(1,COLOR_RED,COLOR_BLUE);//设置颜色对:红蓝
}
代码运行结果如下: