InicioCiencia EducacionPor qué NO usar conio.h C, C++



Al momento de introducirnos a la programación, como con C utilizando compiladores para dicha plataforma, se hacen uso de algunas librerías que no deberían ser utilizadas como es el caso de la tan conocida librería conio.h MSDOS era el único monarca, pero los tiempos cambian, lamentablemente todavía nos vemos obligados a escribir programas exclusivos para Windows en las universidades y/o trabajos. Entonces me puse a investigar y redactar una breve reseña sobre porque no debemos utilizar tan conocida librería.



Nos trasladaremos a los años 80,s cuando una conocida compañía de software como lo es Borland. Fue fundada en 1983, en la actualidad, ya no es tal empresa, ya que fue vendida a una empresa llamada CodeGear(que sigue dando soporte y desarrollo a nuevos productos) que después fue vendida a otra empresa llamada Micro Focus, actualmente dicha empresa no es muy popular, esta dedicada al software empresarial.Borland desarrollo varios compiladores para lenguajes como: Prolog, Pascal, Cobol, entre muchos otros, pero el mas popular para C y C++ fue el tan conocido Turbo C++.En la programación existen estándares. Pueden haber miles de compiladores para un lenguaje pero claro todos los compiladores deben seguir el estándar del lenguaje. A que voy con esto, que a la compañía Borland le dio igual seguir un estándar y en sus compiladores desarrollo librerías no estándares, es decir que esas librerías solo se utilizan en los compiladores que desarrollo dicha empresa, como la tan conocida librería conio.h.Dicha librería se ha convertido para programadores acostumbrados a utilizar compiladores de Borland en una herramienta indispensable para desarrollar sus aplicaciones.



Esta librería contiene los prototipos de las funciones, macros, y constantes para preparar y manipular la consola en modo texto en el entorno de MS-DOS, dicho mas simple esta nos permite dar un “mejor formato” al texto en la terminal de MS-DOS, ya sea dandole color al texto o color al fondo, por mencionar un ejemplo simple.

Algunos de los comandos mas conocidos son: getch(), clrscr(), gotoxy(), textcolor(), y textbackground()

Aun así nosotros podemos sustituir estas funciones de la librería conio.h con otras funciones estándares.

Para sustituir clrscr(), solo necesitamos escribir system(“cls”); la cual está en iostream (es sin .h, se definiría así: #include iostream).

Gotoxy() es algo vago de usar pudiendo utilizar n (espacio hacia abajo) y t (espacio hacia la derecha) dentro de un printf();

Para sustituir getch(), solo necesitamos: cin.get(); la cual está en stdio.h. Si no funciona entonces tendremos que ponerla dos veces: cin.get();cin.get(); También podemos utilizar getchar(); que se encuentra en stdio.h

Y para ser honestos, cualquiera te agradecerá que no le pongas fondo rosa y letras amarillas a tus programas.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------



Ahora, en Linux podemos usar una librería(ncurses.h) en la cual 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 varíen algunas cosas un poco con respecto a lo que estamos acostumbrados.

La instalación es fácil en debian y derivados, basta con hacer:

apt-get updateapt-get install ncurses*

Igualmente es fácil en Fedora y derivados:

yum install ncurses*

Listo, un ejemplo sencillo:

Preguntar e imprimir tu nombre

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:



/* 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. */



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 (el uso de colores en la consola, permite hacer programas que funcionen con pestañas, entre otras cosas)

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

¿Pero los programas escritos usando ncurses como los podemos usar en Windows?

Sí, se puede con PDCurses.



¡Saludos a los que leen !


Datos archivados del Taringa! original
83puntos
1,105visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
3visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

a
alnjr🇦🇷
Usuario
Puntos0
Posts5
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.