DEV Community

Cover image for Introduction to Ncurses (Part 1)

Introduction to Ncurses (Part 1)

tbhaxor profile image Gurkirat Singh Updated on ・1 min read

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>

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>

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

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

    // refreshes the screen

    // pause the screen output

    // deallocates memory and ends ncurses
    return 0;

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

Discussion (0)

Editor guide