介绍

ncurses(new curses)是一套编程库,它提供了一系列的函数以便使用者调用它们去生成基于文本的用户界面。 
ncurses名字中的n意味着“new”,因为它是curses的自由软件版本。由于AT&T“臭名昭著”的版权政策,人们不得不在后来用ncurses去代替它。 
ncurses是GNU计划的一部分,但它却是少数几个不使用GNU GPL或LGPL授权的GNU软件之一。

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

  • vim
  • emacs
  • lynx
  • screen

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

Linux

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

$ sudo apt-get install libncurses5-dev

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

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

//test.c#include <string.h>
#include <ncurses.h>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;
}

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

$ gcc test.c -o test -lncurses
$ ./test

不出意外的话结果如下: 

​​

Windows

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

如果不想自己编译,可以直接下载pdc34dllw.zip。 
否则,下载PDCurses-3.4.tar.gz。以下只介绍下载了pdc34dllw.zip的情况。

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

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

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

//test.c#include <string.h>
#include <curses.h>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;
}

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

gcc test.c -o test.exe -lpdcurses

不出意外的话运行结果如下: 
 
那么接下来让我们开始动手做些有趣的事情吧。

ncurses库的介绍与安装相关推荐

  1. ncurses笔记(1)——ncurses库的介绍与安装

    ncurses笔记(1)--ncurses库的介绍与安装 介绍 ncurses(new curses)是一套编程库,它提供了一系列的函数以便使用者调用它们去生成基于文本的用户界面. ncurses名字 ...

  2. PyKivy入门教程:Kivy Python库的介绍、安装及使用方法详解

    PyKivy入门教程:Kivy Python库的介绍.安装及使用方法详解 Kivy是一个跨平台的Python GUI工具包,可以用于开发能够在多种设备和操作系统上运行的应用程序.Kivy支持触摸输入. ...

  3. 医学配准软件ants和相关python库antspy的介绍和安装

    医学配准软件和相关python库的介绍和安装 文章目录 医学配准软件和相关python库的介绍和安装 1. ants源码安装和使用介绍 1.1 ants介绍 1.2 ants安装 1.3 ants使用 ...

  4. ncurses库的安装与入门

    一.ncurses库的安装 网络上有很多复杂的安装方法,其实没有必要那样操作,只需输入下面这条指令,保证虚拟机联网,就可以在Ubuntu上完成ncurses库的安装. sudo apt-get ins ...

  5. ncurses库的安装

    ncurses库是一个Linux系统下的图形支持的函数库,字符终端处理库,包括面板和菜单.在虚拟机上成功安装ncurses库的过程如下: 1.下载ncurses库源码压缩包 大家可以去这个网址下载:h ...

  6. BOOST库介绍,安装

    第1讲boost库介绍 boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化.不过对比STL,boost更加实用. STL集中在算法部分,而b ...

  7. PySerial:Python串口通信库的详细介绍、安装及使用方法攻略

    PySerial:Python串口通信库的详细介绍.安装及使用方法攻略 一.PySerial 简介 PySerial 是 Python 的一个串口通信库,支持不同平台下的串口操作.在 Python 应 ...

  8. NCURSES库简介

    5月16日 第一章 NCURSES库简介 在使用电传终端作为计算机输出设备的那个年代,电传终端是和计算机分开放置的,并通过串行电缆连接.终端的配置通过发送一系列字节完成.所有的终端控制操 作:改变光标 ...

  9. C语言图书管理借阅系统——ncurses库的使用

    一.前言 作为一只大四狗,最近还跟着大二同学修了一门课(当然不是之前没通过啦),课程是高级语言课程设计,高级语言指的是C语言 :),内容是做一个XX管理系统,我选择了图书管理系统,先介绍下我做的系统: ...

最新文章

  1. The method createCall() from the type Service refers to the missing type Call
  2. Appium 命令行安装教程
  3. 文件上传利器SWFUpload入门简易教程
  4. python合并多个csv文件_python pandas合并多个csv文件
  5. python作业6月14日
  6. 连接真机开发安卓(Android)移动app MUI框架 完善购物车订单等页面——混合式开发(五)
  7. python设置黑色主题_Python背景色与语法高亮主题配置
  8. 【Pygame】在 Pygame 屏幕中添加文字
  9. 服务器系统中怎么调出dos界面,win10怎么进入dos界面_教你两种方法进入win10dos界面...
  10. tcpdf开发文档(中文翻译版)
  11. 华为管理学案例分析_华为战略管理案例分析.docx
  12. 详解u盘装系统找不到镜像文件怎么回事
  13. Excel表的标题栏锁定
  14. 360儿童手表显示服务器错误,360儿童卫士刷机常见问题与解决方法
  15. python汇率兑换_汇率兑换—python第一课
  16. 2021-04-12
  17. Lm317电压源芯片制作电流源
  18. html 阅读swf,网页嵌入式 HTML5+Flash(swf) 视频播放器
  19. 百度地图SDK for Android【离线地图】
  20. CAD手写签名是如何实现的?

热门文章

  1. python使用笔记:pynput库控制键盘鼠标
  2. svn 服务器在生产环境中的搭建
  3. LuManager 高危SQL注入0day分析
  4. CentOS7安装iptables防火墙
  5. entity framework 6 我写了一个公用数据类
  6. Uva592 Island of Logic
  7. RGB_YUV_YCbCr
  8. 从技术人视角看闪电网络之微支付通道
  9. JAVA之旅(八)——多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例...
  10. 使用Python+Qt时解决QTreeWidget中的内容超出边界后自动隐藏的问题