zoukankan      html  css  js  c++  java
  • ncurses库的一些函数

    为了实现一个简单的聊天程序,如果使用普通的输入输出函数,会很凌乱。so,便想着能不能用下
    ncurses这个字符图形库

    总结一下,就是这样。

    使用ncurses时,先需要初始化窗口,程序结束时,主动调用endwin结束窗口。
    initscr();
    endwin();

    输出函数

    #include <curses.h>
    int printw(const char *fmt, ...);
    int wprintw(WINDOW *win, const char *fmt, ...);
    int mvprintw(int y, int x, const char *fmt, ...);
    int mvwprintw(WINDOW *win, int y, int x, const char *fmt, ...);
    int vwprintw(WINDOW *win, const char *fmt, va_list varglist);
    int vw_printw(WINDOW *win, const char *fmt, va_list varglist);
    

    printw 在默认的坐标输出
    wprintw 指定窗口,在默认的坐标输出
    mvprintw 指定坐标,输出
    mvwprintw 指定窗口,指定坐标输出
    vmprintw 和 vm_printw 比较不常用,搜索无果。。

    输入函数

    #include <curses.h>
    
    int scanw(char *fmt, ...);
    int wscanw(WINDOW *win, char *fmt, ...);
    int mvscanw(int y, int x, char *fmt, ...);
    int mvwscanw(WINDOW *win, int y, int x, char *fmt, ...);
    int vw_scanw(WINDOW *win, char *fmt, va_list varglist);
    int vwscanw(WINDOW *win, char *fmt, va_list varglist);
    

    scanw 在默认的坐标输入
    wscanw 指定窗口的默认坐标输入
    mvscanw 在指定的坐标输入
    mvwscanw 在指定的窗口和指定的坐标输入
    上面的函数,和scanf差不多,在输入字符串,遇到空格就听,如果需要输入空格,就需要使用下面的函数。

    #include <curses.h>
    
    int getstr(char *str);
    int getnstr(char *str, int n);
    int wgetstr(WINDOW *win, char *str);
    int wgetnstr(WINDOW *win, char *str, int n);
    int mvgetstr(int y, int x, char *str);
    int mvwgetstr(WINDOW *win, int y, int x, char *str);
    int mvgetnstr(int y, int x, char *str, int n);
    int mvwgetnstr(WINDOW *, int y, int x, char *str, int n);
    

    上面的函数用于输入字符串。

    创建窗口

    WINDOW *newwin(int nlines, int ncols, int begin_y, int begin_x);
    

    newwin() nlines和ncol分别为行数和列树,begin_y和begin_x分别为纵坐标和横坐标。
    这里的坐标指的是左上角的坐标。

    刷新窗口和刷新页面

    wrefresh(WINDOW *win);
    refresh();
    

    获取坐标的宏

    getmaxyx(WINDOW *win, y, x);
    

    getmaxyx 得到指定窗口的长度和高度,默认的窗口是stdscr。

  • 相关阅读:
    Yii2安装任务调度扩展
    分享书籍[writing idiomatic python ebook]
    python待解决问题笔记
    dojo使用笔记: 自定义ConfirmDialog
    dojo使用疑难杂症集锦
    学习"大众点评网的架构设计与实践"
    一个前端html模板处理引擎(javascript)
    日历设计之重复事件规则设计
    TCP/IP之TCP的建立与终止
    python正则表达式
  • 原文地址:https://www.cnblogs.com/0x12345678/p/5619000.html
Copyright © 2011-2022 走看看