pequeño tutorial sobre compilacion en linux
Se me había ocurrido compilar algunos de los programitas que hice hace dos o tres años en C en Windows y
claro, ahora en Linux daban algunos fallospor librerías y funciones utilizadas. Lo normal.
Sin embargo, me ha llamado la atención de que no funcionaran ni gotoxy(x,y), ni clrscr(). La primera para ir a
unas coordenadas de la pantalla parapoder escribir a continuación allí, en lugar de línea a línea, y la segunda
para limpiar toda la pantalla. Y da la casualidad de que ayer me aburría y me apeteció programarme un Juego
de la Vida deConway, de modo que necesitaba una función que sustituyese al gotoxy(x,y).
Así pues he intentado mirar en algún manual y luego he googleado un poco. Parece ser que estas dos
funciones sólo están enlibrerías del DOS, y que no hay equivalente en librerías existentes en Linux. Hay
bastantes hilos en foros de gente preguntando por eso mismo, y en algunos la solución que dan es definir esasfunciones en tu propio código. Por supuesto, acompañan el código.
El clrscr() no puede ser más simple: un bucle con tantos intros como desees, unos 50 serán más que
suficientes, aunque todo depende deltamaño de la ventana. ¿Para qué complicarse más la vida?
Para el gotoxy(x,y) ya es necesaria una secuencia de escape, la \033:
Escape sequences allow you to send nongraphic control characters to adisplay device. For example, the
ESC character (\033) is often used as the first character of a control command for a terminal or printer. Some
escape sequences are device-specific. For instance, thevertical-tab and formfeed escape sequences (\v and \f)
do not affect screen output, but they do perform appropriate printer operations.
He encontrado el código para la función gotoxy(x,y) en dos sitios,uno más largo y otro más reducido. He
comprobado que funcionan ambas. Copio aquí el reducido:
#define MAX_SCREEN_AREA 100
int gotoxy(int x, int y){
char essq[MAX_SCREEN_AREA]={0}; // String...
Regístrate para leer el documento completo.