
El titulo esta algo dramático pero sirve para llamar la atención
..
Como un pequeño offtopic:
No se como paso pero se habían borrado los comentarios de aproximadamente los últimos 15 días , sepa si moví algo sin querer pero de que paso, paso, pero por suerte el lunes pasado me decidi a sacar el primer backup del blog xD, (si, el primero) , gracias a eso puede restaurar esos comentarios desde el phpmyadmin
.
Ahora al tema principal:
Una de las virtudes del humano es el poder evolucionar y progresar a cosas mejores, es nuestra naturaleza y se aplica incluso a la informática. Los tiempos cambian y la era en la que MSDOS era el único rey ya termino, sin embargo y por desgracia todavía quedan secuelas de ese “reinado” y un claro ejemplo es el uso que todavía se le sigue dando al mítico TURBO C , y que muchos todavía nos vemos obligados a escribir programas exclusivos para windows en las universidades y/o trabajos.
Para los que estan relacionados con el medio les va a sonar familiar la librería conio.h, si, esa misma cabecera de borland que usamos a cada momento para escribir los programas en modo texto y para ocupar las famosas funciones, getch(), clrscr(), gotoxy(x,y), y que es el impedimento #1 de porque no es común tener programas portables de windos a linux..
(conio.h no es una librería de GNU/Linux).
¿Entonces ante esta problemática que se puede hacer?.
Para nuestra fortuna y como era de esperarse ya pensaron en eso y tenemos una gran alternativa al conio.h, borland y al turbo c que se llama Ncurses, me voy a ahorrar el trabajo de dar el concepto porque ya esta explicado en la wikipedia, asi que solo estan a un click de conocerlo
.
La instalación es fácil en debian y derivados, basta con hacer:
apt-get update
apt-get install ncurses*
Ahora, un programa sencillo que use ncurses seria uno que te pida el nombre y después lo imprima en pantalla xD (uy) .
En ncurses la sintaxis es similar a si estuviéramos usando el stdio.h y conio.h, sin embargo hay algunas cosas nuevas que le dan más potencia a curses y que hacen que varien algunas cosas un poco con respecto a lo que estamos acostumbrados.
A lo bueno (escribir un programa usando ncurses) :
Lo primero y obvio incluir la cabecera en el programa:
#include <ncurses.h>
después viene la declaración de la función principal, la variable del tipo char y ahora algo importante que es iniciar la pantalla que se hace con la función initscr() , podemos borrar los datos que ya pudieran estar en la pantalla con erase() (vendría siendo el equivalente al clrscr() del conio.h)
La impresión se hace con printw(), y la sintaxis es la misma que el printf(), la lectura de datos se hace con scanw() y la sintaxis es la misma que el scanf(), por ultimo si queremos esperar un caracter del teclado se hace lo mismo que en turbo c, getch(), ahora algo importante también, cerrar la ventana con endwin() y sin olvidar el común return 0 .
queda de esta forma:

Nótese que estoy usando nada más el gedit que viene incluido en gnome, no necesito más.. después solo es cuestión de guardar el programa con una extensión .c
Si quisiéramos sentirnos más leets a la hora de programar podemos usar el vim para codear en la misma consola:

/* No se porque no me coloreo las funciones ni resalto nada
, pero en un vim sin problemas se ve bastante bien xD */
¿Y como se viera el programa compilado y ejecutado?

/* Para compilar (via terminal):
gcc ncurses.c -o ncurses -lncurses
gcc es el compilador de linux, ncurses.c es el código fuente del programa ncurses es el nombre con el que se va a guardar el programa y el -lncurses es para obligar al compilador a usar la librería. */
Bonito verdad?
, ese mismo programa se podría hacer en turbo c usando las librerías nativas de el:

Y ejecutándolo:

Pero esta no es toda la grandeza de usar ncurses, sino que es mucho más potente y amplio que usar conio.. con ncurses se pueden hacer las mismas cosas que con conio y mejor, p.e:
El uso de colores en la consola, permite hacer programas que funcionen con pestañas
, entre otras cosas. Espero poder enseñarles otro programa en alguna otra entrada cuando ya haya ampliado más el tema
.
Para ver la documentación se puede con:
man ncurses
Y para ver la documentación de las funciones que este trae con:
man función
Hablando un poco del entorno de programación si a alguien no le gusta usar gedit o vim siempre pueden hacerlo por medio de anjuta para más comodidad
El tema de ncurses es largo, hay documentación en Internet pero a mi parecer todavía esta deficiente, asi que yo también ando en la búsqueda de encontrar información mas completa, pero por el momento y si les interesa siempre se le puede preguntar al gran google.
¿Pero los programas escritos usando ncurses como los podemos usar en Windows?
Pues se puede con PDCurses pero el tema lo dejo para otra entrada del blog, porque creo que ya se agrando mucho esta xD
–
—–
Una de las frases que más he escuchado durante toda mi vida por parte de mi familia, es que en un medio laboral competitivo los que logran algo son los mismos que han logrado diferenciarse del resto, entonces lo mejor es siempre aprender cosas nuevas y por qué no transmitirlas a gente que les interese tanto como a mi?
Saludos a los que leen !


















