Ncurse库
程序用到了一个Ncurse库,由于C语言本身自带的可以获取用户输入的函数例如getchar()\scanf()\gets()等需要我们再在输入完成以后按回车才能结束输入,对我们的程序带来了不便,所以我们用Ncurse库来实现对蛇进行实时的响应和界面的刷新,具体介绍和安装请自行百度。
下面试一些Ncurse使用例子:
#include <curses.h> //头文件
int main()
{
initscr();//ncurse界面初始化函数
printw("This is acurses window.\n");//ncurse下的printf
getch();//等待用户输入,如果没有这句话,程序就退出,看不到运行结果
endwin();//程序退出,调用函数来恢复Shell终端的显示
return 0;
}
执行结果:
在Linux中编译Ncurse程序时要加上-lcurses,如下:
gcc xxx.c -lcurses
ncurses输入输出
我们可以试着编写:
#include <curses.h>
#include <stdio.h>
int main()
{
char c;
initscr();
c = getch();
putchar('\n');
printw("You Input:%c.\n",c);
getch();
endwin();
return 0;
}
执行结果:
ncurse上下左右键获取
在ncurse中使用,keypad();获取功能键的输入。
例:keypad(stdscr,1);
#include <curses.h>
#include <stdio.h>
int main()
{
int key;
initscr();
while(1){
key = getch();
printw("You Input:%d.\n",key);
}
endwin();
return 0;
}
执行结果:
例二:
#include <curses.h>
int main()
{
int key;
initscr();
keypad(stdscr,1);
while(1){
key = getch();
switch(key){
case 0402:
printw("DOWN\n");
break;
case 0403:
printw("UP\n");
break;
case 0404:
printw("LEFT\n");
break;
case 0405:
printw("RIGHT\n");
break;
}
}
endwin();
return 0;
}
执行结果: