DEV Community

Cover image for Introduction to Ncurses (Part 1)
Gurkirat Singh
Gurkirat Singh

Posted on Edited on

Introduction to Ncurses (Part 1)

Welcome to the series of Ncurses library in C++. In this, you will learn basics and some tidbits of ncurses.

NCurses is a programming library that provides an application programming interface that allows the programmer to write text-based user interfaces in a terminal independent manner.

To use ncurses we use ncurses.h header

#include <ncurses.h>
Enter fullscreen mode Exit fullscreen mode

Some functions that must be used in all ncurses

  • initscr()
    • initializes screen
    • sets up memory and clean the screen
  • refresh()
    • refreshes the screen to match what's in the memory on the screen
  • endwin()
    • deallocates memory and ends ncurses
  • getch()
    • waits for user input
    • returns the ASCII value of that key

To compile we must link the libncurses while compilation.

$ g++ <program file> -lncurses -o <output file name>
Enter fullscreen mode Exit fullscreen mode

An obligatory hello-world program in ncurses

#include <ncurses.h>
using namespace std;

int main(int argc, char ** argv)
{
    // init screen and sets up screen
    initscr();

    // print to screen
    printw("Hello World");

    // refreshes the screen
    refresh();

    // pause the screen output
    getch();

    // deallocates memory and ends ncurses
    endwin();
    return 0;
}
Enter fullscreen mode Exit fullscreen mode

Before using ncurses make sure it's installed in your system
Programs using NCurses

Here are some tools and IDE using ncurses library

  • HTop
  • GNU Nano Text Editor

Top comments (0)