Escribo este post solo porque no puedo dormir, es acerca de ncurses una libreria que fue diseñada y programada para trabajarla con c++. Veamos como se trabaja con ella.
Primero hay que decir que si usd estimado lector(a) ha tenido la oportunidad de trabajar con el clasico y repugnante Borland c++ tambien conocido como turbo c++ (De turbo no tiene nada) estara acostumbrado(a) a usar la libreria conio, esta libreria No es standard por lo tanto podemos decir que es otro intento de Borland para tirarse flores y decir que mejoraron c++ notablemente (o talvez no), el punto es que bajo linux No puede usarse conio y esto pone en apuros a los aprendices de c/c++ que migran a x distribucion. ncurses soluciona la problematica ya que es como la conio de linux, veamos por que es esto:
Con ncurses podemos mover texto sin tener que declarar una molesta funcion que incluya strlen para sacar la extension de una cadena ni formulitas extrañas que nos hacen perder el tiempo. En conio se usa gotoxy(x,y) en ncurses tenemos move(y,x).
Nota: gotoxy(x,y) es mas nativa de pascal que de algun otro lenguaje de programacion, por eso borland sucks.
Con ncurses manipulamos colores directamente, en conio esto no se puede hacer ya que para eso existe Graph (el supuesto SDL de Borland…. PPPfffff….), lo hacemos asi:
if(has_colors()){ //Esto inicializa la posibilidad de usarlos al comprobar si la linea de comandos usada soporta o no colores, si los soporta //devuelve true
start_color( );
}
init_pair(1,COLOR_BLACK,COLOR_BLUE); // se define la combinacion de colores, el primero es el fondo el segundo color de letras.
attron(COLOR_PAIR(1)); //Iinicia los colores elegidos mediante init_pair( );
Con ncurses podemos dibujar figuras en la pantalla tal y como lo hacemos con el graph de Borland.
En otras palabras esta libreria es matar dos pajaros de un solo tiro, en fin, ahora veamos como instalarla y como compilar codigo ncurses:
Para instalar recomiendo ir a synaptic o al package manager que tengan y busquen ncurses, de inmediato salen los paquetes a instalar. Ahora para incluirla solo debemos hacer escribir una directriz de preprocesado:
#include <ncurses.h>
Si tratamo de compilar el codigo escrito con las propiedades de ncurses obtendremos un error ya que el linker no identificara ncurses hasta agregarla al compilador que estemos usando (gcc), para agregarla solo escribimos -lncurses y guardamos (esto en el panel de linker que corresponda al IDE que estemos usando), si programamos en terminal utilizando nano solo compilamos de la manera mas clasica:
gcc -lncurses fichero.cpp
Pueden encontrara un ejemplo mas concreto de un programa con ncurses en la seccion de c++ del blog, escrito con codeblocks.

