Alternativa a conio.h en Linux Ubuntu usando curses.h

Para los que alguna vez aprendimos a programar con el famosos y antiguo Turbo C que si no mal recuerdo en ese entonces era de la extinta Borland, en esos ayeres pudimos ver que existían funciones como getch(), gotoxy(), color(); que eran parte de una biblioteca propia de Turbo C llamada conio.h y como no es parte del estándar ANSI C no la tenemos en Linux Ubuntu.

Bueno pues ésta entrada es para comentar que existe una biblioteca para Linux que aunque también no es parte del estándar ANSI C la podemos utilizar como alternativa a las funciones que teníamos en conio.h y aquí te digo qué tienes que hacer.

Primero que nada quiero comentar que actualmente estoy utilizando la versión 12.04 de Ubuntu por lo que lo que verás está con esa distribución de Linux.

Debes instalar los paquetes libncurses5-dev y libncursesw5-dev con:

sudo apt-get install libncurses5-dev libncursesw5-dev


Abres tu entorno de desarrollo y prueba escribiendo el siguiente código:


#include <curses.h>

int main() {
  initscr(); //activar el acceso a la pantalla
  clear(); //limpia la pantalla
  move(0,30); //mueve el cursos a la posición 0,30
  printw("Hola");
  refresh(); //mostrar en pantalla lo escrito por printw
  getch(); //espera la pulsación de una techa
  endwin(); //cerrar el acceso a la pantalla
  return 0;  
}



En lo personal me gusta mucho Geany como entorno de programación tanto para PHP como para lenguaje C así que comentaré que después de construir el programa y que puedas construirlo sin problemas tendrás que modificar el comando de construir desde el menú de Geany como se muestra en la siguiente captura:


Deberás poner la opción -lcurses al final del comando construir como se puede ver en la siguiente captura:


Por último, ejecuta el programa y podrás ver el funcionamiento de las funciones antes mencionadas. Bueno, por hoy es todo y no antes mencionar que la información fue vista en las siguientes ligas:

Error al compilar en Android Studio 4.0: CIRCULAR REFERENCE:com.android.tools.r8.a: Invoke-customs are only supported starting with Android O

Resulta que estuviste construyendo tu APP desde Android Studio 4.0 y no te marcó ningún tipo de error de codificación pero al querer compila...