博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ncurses笔记(1)——ncurses库的介绍与安装
阅读量:6713 次
发布时间:2019-06-25

本文共 1671 字,大约阅读时间需要 5 分钟。

介绍

(new curses)是一套编程库,它提供了一系列的函数以便使用者调用它们去生成基于文本的用户界面。 

ncurses名字中的n意味着“new”,因为它是curses的自由软件版本。由于AT&T“臭名昭著”的版权政策,人们不得不在后来用ncurses去代替它。 
ncurses是的一部分,但它却是少数几个不使用GNU GPL或LGPL授权的GNU软件之一。

其实我们对ncurses本身并不陌生,以下几款大名鼎鼎的软件都用到过ncurses:

  • vim
  • emacs
  • lynx
  • screen

为了制作自己构想了一段时间的Roguelike的游戏,同时作为对的实践,我开始接触ncurses并在此作笔记。


安装

Linux

以Debian为例(人生中第一个发行版)

$ sudo apt-get install libncurses5-dev
  • 1
  • 1

在非Debian发行版中的安装方法以后会来补充

安装完毕后,我们写下如下代码:

//test.c#include 
#include
int main(int argc,char* argv[]){ initscr(); raw(); noecho(); curs_set(0); char* c = "Hello, World!"; mvprintw(LINES/2,(COLS-strlen(c))/2,c); refresh(); getch(); endwin(); return 0; }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

然后使用gcc编译后执行看看效果,不要忘了加-lncurses哦。

$ gcc test.c -o test -lncurses$ ./test
  • 1
  • 2
  • 1
  • 2

不出意外的话结果如下: 

test

Windows

ncurses貌似没有提供Windows平台的支持,不过作为代替,我们可以使用。虽然最近一次的stable版本已经是08年的事情了,但使用起来暂时没有发现问题,可以对照着网上的ncurses的资料进行学习。

如果不想自己编译,可以直接下载pdc34dllw.zip。 

否则,下载PDCurses-3.4.tar.gz。以下只介绍下载了pdc34dllw.zip的情况。

将pdc34dllw.zip解压后,不出意外将得到下面这些文件: 

pdc34dllw.zip 
以MinGW为例,

  • 将所有.h文件放入MinGW的include目录中
  • 将pdcurses.lib文件放入MinGW的lib目录中
  • 将pdcurses.dll文件放到你的目标文件的同目录下(推荐)或者X:\Windows\SysWOW64目录中(不推荐)

配置完毕后,我们写下如下代码:

//test.c#include 
#include
int main(int argc,char* argv[]){ initscr(); raw(); noecho(); curs_set(0); char* c = "Hello, World!"; mvprintw(LINES/2,(COLS-strlen(c))/2,c); refresh(); getch(); endwin(); return 0; }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

然后使用gcc编译,不要忘了加-lpdcurses哦。

gcc test.c -o test.exe -lpdcurses
  • 1
  • 1

不出意外的话运行结果如下: 

test.exe 
那么接下来让我们开始动手做些有趣的事情吧

你可能感兴趣的文章
To Be an Architect : 架构的一些基本概念
查看>>
数据恢复软件哪个好
查看>>
『火车进出栈问题 卡特兰数』
查看>>
第四天:HTTP&Tomcat
查看>>
python 文件和路径操作函数小结
查看>>
条件+努力=?
查看>>
HBase分布式安装
查看>>
随笔-文件的读写
查看>>
tcp 状态以及三次握手
查看>>
我的友情链接
查看>>
WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK!的分析
查看>>
nginx禁止ip直接访问
查看>>
hadoop常用服务管理命令
查看>>
10.28 rsync工具10.29-10.30 rsync选项10.31 rsync通过ssh同步
查看>>
Fault,Error and Failure
查看>>
Go语言的通道(1)-无缓冲通道
查看>>
spring oauth从请求中获取token
查看>>
6.18docker(一)Compose 模板文件
查看>>
每天学点GDB 9
查看>>
为什么要用 /dev/null 2>&1 这样的写法
查看>>