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。

  • 相关阅读:
    [古城子的房子] 贪心
    [小兔的棋盘] 组合数学
    [Triangle] Fibonacci+二分查找
    [Fibonacci] 矩阵快速幂
    [DP?]素数筛+Lucas定理+费马小定理
    react本地开发关闭eslint检查
    react 不同js文件里公用同一个变量
    js学习笔记
    node内存扩展,前端项目运行时报内存不足的错误
    Gitee码云通过WebHooks实现自动同步代码部署
  • 原文地址:https://www.cnblogs.com/0x12345678/p/5619000.html
Copyright © 2011-2022 走看看