Es frecuente en este foro encontrarse con gente que sigue trabajando con TurboC de Borland con la líbrería conio.h y normalmente la usan para dos o tres funciones: gotoxy, getch y getche. Para los que trabajamos con Linux nos da un poco de pereza ir editando todas esas líneas para hacer el código ejecutable. Pues bien, a raíz de eso he decidido hacerme una pequeña conio para quitarme de encima susodicho trabajo y ahora quiero compartirla con vosotros.
conio.h
#ifndef CONIO_PARA_LINUX
#define CONIO_PARA_LINUX
#include <stdio.h>
#include <termios.h>
void gotoxy(int x, int y) {
printf("\33[%d;%df", y, x);
}
static char getch_interno(int eco) {
char c;
struct termios old, new;
tcgetattr(0, &old);
new = old;
new.c_lflag &= ~ICANON;
new.c_lflag &= eco ? ECHO : ~ECHO;
tcsetattr(0, TCSANOW, &new);
c = getchar();
tcsetattr(0, TCSANOW, &old);
return c;
}
char getch() {
return getch_interno(0);
}
char getche() {
return getch_interno(1);
}
#endif