ncurses库 常用函数及基本使用

本文深入讲解了Curses库的基本功能和使用方法,包括初始化、窗口操作、字符输入输出、颜色设置等关键API。通过示例代码展示了如何创建、布局和管理终端窗口,适合初学者快速掌握Curses库的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用这个库你可以让你的输出出现在终端任意的地方  

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值