Aki pascalon kezdett el programozni, az amikor C-ben az adatok kiíratásánál szeretne gotoxy(); utasítást használni, a már jól berögzült módon, az gyorsan szembesül a dologgal, hogy C-ben nincsenek elkényeztetve ilyen csilivili “grafikai” eszközökkel a fejlesztők. Anno Pascalban íródott “kergetős játékom”-at szerettem volna átírni C-re, amikor az alap utasítást helyettesítő parancsot kerestem. Most egy nagyon alap (és nem ajánlott) függvényt fogok bemutatni, ami a gotoxy(); utasítást fogja implementálni.

#include
#include

void clrscr(void) {
int i;

for (i = 0; i < 100; i++) // A bunch of new lines for now. It's blank, hey! putchar('\n'); }int gotoxy(int x, int y) { char essq[100]; // String variable to hold the escape sequence char xstr[100]; // Strings to hold the x and y coordinates char ystr[100]; // Escape sequences must be built with characters/* ** Convert the screen coordinates to strings */ sprintf(xstr, "%d", x); sprintf(ystr, "%d", y);/* ** Build the escape sequence (vertical move) */ essq[0] = '\0'; strcat(essq, "\033["); strcat(essq, ystr);/* ** Described in man terminfo as vpa=\E[%p1%dd ** Vertical position absolute */ strcat(essq, "d");/* ** Horizontal move ** Horizontal position absolute */ strcat(essq, "\033["); strcat(essq, xstr); // Described in man terminfo as hpa=\E[%p1%dG strcat(essq, "G");/* ** Execute the escape sequence ** This will move the cursor to x, y */ printf("%s", essq);return 0; }/* ** Example */ int main () { clrscr(); gotoxy(40, 12); printf("Coordinates: x = 40; y = 12;\n"); gotoxy(100, 90); printf("Coordinates: x = 100; y = 90;\n");return 0; }