29/10/2016
La librería conio.h es un tema recurrente entre programadores que trabajan con C/C++, especialmente aquellos que se inician en la programación de consola. Aunque su uso es menos común en entornos modernos, comprender su funcionamiento y las alternativas disponibles es fundamental para cualquier desarrollador.
¿Qué es conio.h?
conio.h es un archivo de cabecera en C que proporciona funciones para la entrada y salida de la consola. Su nombre proviene de “console input/output”. Estas funciones fueron muy populares en compiladores antiguos de MS-DOS, permitiendo la creación de interfaces de usuario de texto simples. Sin embargo, no forma parte del estándar ANSI C y su disponibilidad y comportamiento pueden variar según el compilador. Por lo tanto, el código que la utiliza puede no ser portable a otros sistemas operativos o compiladores.
Funcionalidades principales de conio.h
Las funciones que ofrece conio.h facilitan tareas como:
- Limpiar la pantalla (clrscr())
- Obtener un carácter del teclado sin esperar el Enter (getch())
- Obtener un carácter del teclado con eco en pantalla (getche())
- Escribir un carácter en la pantalla (putch())
- Leer una cadena de caracteres de la consola (cgets())
- Escribir una cadena de caracteres en la consola (cputs())
- Funciones similares a printf() y scanf(), pero para consola (cprintf(), cscanf())
- Detectar si se ha pulsado una tecla (kbhit())
- Controlar el color del texto y el fondo (textcolor(), textbackground())
- Borrar líneas de la pantalla (delline())
- Mover el cursor a una posición específica (gotoxy())
- Obtener la posición actual del cursor (wherex(), wherey())
Ejemplo de uso de funciones de conio.h
A continuación, se muestran ejemplos de algunas de las funciones más utilizadas:

Limpiar la pantalla: clrscr()
#include <stdio.h>#include <conio.h>int main() { printf("Línea 1"); printf("Línea 2"); clrscr(); printf("Línea 3"); return 0;}Leer un carácter sin eco: getch()
#include <stdio.h>#include <conio.h>int main() { printf("Presione una tecla..."); getch(); printf("Tecla presionada."); return 0;}Escribir un carácter: putch()
#include <stdio.h>#include <conio.h>int main() { putch('A'); return 0;}Limitaciones de conio.h
La principal limitación de conio.h es su falta de portabilidad. No está disponible en todos los compiladores ni sistemas operativos. Su uso está principalmente ligado a compiladores antiguos de MS-DOS, como Turbo C. En sistemas modernos, su uso es desaconsejado.
Alternativas a conio.h
Para lograr un comportamiento similar en sistemas modernos, existen alternativas más portables como:
- curses.h : Esta librería es una alternativa ampliamente disponible y portable a distintos sistemas Unix-like, ofreciendo funcionalidades similares a conio.h . Sin embargo, requiere familiarizarse con su API. Para sistemas basados en Linux, se podría instalar la librería ncurses con el gestor de paquetes APT:
sudo apt-get install libncurses5-dev libncursesw5-devo con YUM:sudo yum install ncurses-devel ncurses. - Librerías de manejo de consola específicas del sistema operativo: Cada sistema operativo tiene sus propias librerías para interactuar con la consola. En Windows, por ejemplo, se puede usar la librería Windows API para tareas similares.
Tabla comparativa entre conio.h y curses.h
| Característica | conio.h | curses.h |
|---|---|---|
| Portabilidad | Baja | Alta |
| Disponibilidad | Limitada a compiladores antiguos de MS-DOS | Ampliamente disponible en sistemas Unix-like |
| Complejidad | Simple | Más compleja |
| Funciones | Funciones básicas de entrada/salida de consola | Amplio conjunto de funciones para manipulación de la consola |
Consultas habituales sobre conio.h
Algunas de las preguntas más frecuentes relacionadas con conio.h son:

- ¿Por qué conio.h no funciona en mi compilador? Porque probablemente tu compilador no está diseñado para MS-DOS y no incluye esta librería no estándar.
- ¿Cuál es la mejor alternativa a conio.h? Depende del sistema operativo y la complejidad requerida. Para sistemas Unix-like, curses.h es una buena opción.
- ¿Cómo instalar ncurses? Depende del gestor de paquetes de tu distribución Linux. En general, los comandos serían similares a los mencionados anteriormente.
Aunque conio.h ofrece funciones simples para la interacción con la consola, su falta de portabilidad la convierte en una opción poco recomendable en proyectos modernos. El uso de alternativas como curses.h o las librerías específicas del sistema operativo asegura mayor compatibilidad y portabilidad.
Si quieres conocer otros artículos parecidos a Librería conio.h en c/c++ puedes visitar la categoría Libros y Librerías.
