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。

  • 相关阅读:
    Shared Memory in Windows NT
    Layered Memory Management in Win32
    软件项目管理的75条建议
    Load pdbs when you need it
    Stray pointer 野指针
    About the Rebase and Bind operation in the production of software
    About "Serious Error: No RTTI Data"
    Realizing 4 GB of Address Space[MSDN]
    [bbk4397] 第1集 第一章 AMS介绍
    [bbk3204] 第67集 Chapter 17Monitoring and Detecting Lock Contention(00)
  • 原文地址:https://www.cnblogs.com/0x12345678/p/5619000.html
Copyright © 2011-2022 走看看