使用这个库你可以让你的输出出现在终端任意的地方
initscr(); //打开curses模式 进入你的终端
endwin(); //关闭窗口stdscr
noecho(); //关闭回显 让键盘输入字符 不显示在终端上
echo() // 显示字符
cbreak(); // 接受单个字符处理 禁止行缓冲
keypad(WINDOW *, bool); //指定窗口 激活功能键 上下左右 F1 F2等
start_color();//打开color模式
scroll(); //指定窗口 接受字符 超过一行自动写入下一行
getmaxyx(WINDOW *,int winHLineNumber, int winWLineNumber);//获取指定窗口行数 和行宽字符列数
newwin(int winHLineNumber, int winWLineNumber, int begin_x, int begin_y); //创建新窗口
subwin(WINDOW *,int winHLineNumber, int winWLineNumber, int begin_x, int begin_y)//创建子窗口 参数 1 父窗口 2 行高 3 行宽 4 基于父窗口 那行 起5 基于父窗口那列起
delwin(WINDOW *);释放窗口
box(WINDOW *, chtype, chtype); //指定窗口画边框 如box(rightWin, '.', '.');
move( int begin_x, int begin_y)//移动光标 基于标准屏幕stdscr
printw()//同printf用法同 基于标准屏幕stdscr
refresh();//刷新缓存 更新屏幕 基于标准屏幕stdscr
wmove(WINDOW *, int begin_x, int begin_y)//移动光标 指定窗口
wprintw(WINDOW *, ....)//同printf用法同 指定窗口
wrefresh(WINDOW *,);//刷新缓存 更新屏幕 指定窗口
getch();//获取键盘输入单个字符
getstr();//获取键盘输入字符串
想更了解请到https://www.mkssoftware.com/docs/cur_index.asp
总结 一般窗口使用函数 都有指定窗口使用的这种函数 如 printw()就有wprintw() 。。。。
接下来简单使用库创建终端如图
vs 代码如下
#define PDC_DLL_BUILD TRUE //导入Window Build 宏
#include "curses.h"
#include <iostream>
int main()
{
int winHLineNumber;//窗口高行数
int winWLineNumber;//窗口宽列数
WINDOW* upWin; //上窗口
WINDOW* leftWin;
WINDOW* rightWin;
initscr(); //初始化ncurses
getmaxyx(stdscr, winHLineNumber, winWLineNumber); //获取stdscr标准窗口的行数 和行宽占字符列数
if (upWin == NULL)
upWin = subwin(stdscr, winHLineNumber / 5, winWLineNumber, 0, 0); //创建子窗口
if (leftWin == NULL)
leftWin = subwin(stdscr, winHLineNumber - winHLineNumber / 5, winWLineNumber / 5 * 4, winHLineNumber / 5, 0);
if (rightWin == NULL)
rightWin = subwin(stdscr, winHLineNumber - winHLineNumber / 5, winWLineNumber / 5 * 1, winHLineNumber / 5, winWLineNumber / 5 * 4);
box(upWin, '.', '.'); //画框
box(leftWin, '.', '.');
box(rightWin, '.', '.');
wmove(upWin, 1, 1); //移动光标
wprintw(upWin, "%s", "this is upWin"); //窗口打印
wmove(leftWin, 1, 1);
wprintw(leftWin, "%s", "this is leftWin");
wmove(rightWin, 1, 1);
wprintw(rightWin, "%s", "this is rightWin");
getch(); //等待键盘输入 这是为了让程序停在这里 不让关闭和释放窗口
delwin(upWin); //释放窗口
delwin(leftWin);
delwin(rightWin);
endwin(); //关闭stdscr
return 0;
}