Ncurses <一>

前言: 最好的ncurses教程是 ncurses HOWTO,网上有中文版

编译ncurses引用的程序,需要加编译参数 -lncurses

并在.c文件中包含 ncurses.h头文件

1. 启动ncurses 

initscr();

结束ncurse
endwin();

2. 判断是否支持彩色

has_color();

3. 进入无缓存模式

 raw();
 noecho();

4. 获取输入键值

getch();

  

 例子:

/** @file engine.c
 *    created by xx, 2013-09-25
 *    
 *    Definition of ncurses related functions    
 *
 *    This file presents ncurses implements functions of game's 
 *    graphics    
 */

#include <ncurses.h>
#include "engine.h"

/** @function engine_init  
 *         
 *    This function init ncurses configurations
 */

void engine_init()
{
    //if(isColorEnabled() == TRUE)
    //{
        // console support color mode 
        // do something when it support color
    //}
    
    //start ncurse
    int ch=0;
    initscr();
    raw();
    noecho();
    printw("hello!
");
    refresh();    
    
    while( (ch=getch()) != '
' )
    {
        addch(ch);
        refresh();
    }
}

static int isColorEnabled()
{
    return has_colors();
}

/** @function engine_shut
 *      This function will shutdown mcurse 
 */

void engine_shut()
{
    endwin();
}

 6. 判断当前console是否满足最小窗口大小

     
int win_row=0;
 int win_col=0;
getmaxyx(stdscr, win_row, win_col); if(win_row < MIN_ROW || win_col < MIN_COL) { game_abort("YOUR CONSOLE IS SMALLER THAN MIN WINDOW THE GAME NEEDED!"); }

  

原文地址:https://www.cnblogs.com/unixshell/p/3338320.html