ncurses 库使用介绍: 实现终端 GUI

发布时间 2023-04-14 14:58:47作者: 四季夏目天下第一

这次 ENGG1340 课程的 group project 是设计并实现一个 text-base game,作为终端上运行的 text-base game,有一个出彩的 GUI 肯定是一个加分项!

在未老师的介绍下,我知道了有 <ncurses.h> 库这么一个神奇的东西;最重要的是,虽然它不属于 C++ 标准库,但是在学校 server 里居然默认下载好了 (可见其出名的功能强大)
据说很多热门的终端程序,例如 Vim,SL 都用到了 ncurses

花了一个下午学习了一下用法,在这里简单的总结一下,并且附上一些简单 GUI 组成的实例

Installation

官方 release 网址在这里

在终端上输入命令 sudo apt-get install libncurses5 进行安装

Compilation

所有使用了 <ncurses.h 库的程序,在编译时需要添加参数 -l ncurses

例: g++ -o test test.cpp -lncurses

初始化窗口对象

使用 initscr() 初始化一个窗口对象 (WINDOW 类)
初始化过后,我们接下来将与该窗口对象进行交互: std::cin/out, scan/printf 等标准输入输出将失效