Je cherchais un substitut de gotoxy () pour le compilateur GCC et j'ai trouvé cela -
void gotoxy(int x,int y) { printf("%c[%d;%df",0x1B,y,x); }
3 Réponses :
Ceci utilise codes d'échappement terminal pour positionner le curseur.
Le trailing 'F' indique que vous souhaitez forcer la position du curseur quelque part, indiquée par les coordonnées qui le précèdent. p> donc si vous appelez "\ x1b" code> est le caractère d'échappement qui indique à votre terminal que ce qui se passe ensuite n'est pas destiné à être imprimé à l'écran, mais plutôt une commande à la borne (ou l'émulateur de terminal le plus probable) P. >
gotoxy (4,2) code>, il finit par envoyer la séquence d'évacuation
"(ESC) [2; 4f" code> où
ESC code> est l'octet
0x1b code>. p> p>
Merci Jonathon! C'était vraiment serviable et facile à comprendre.
Mon plaisir. J'ai récemment dû faire beaucoup d'interprétation de ces séquences d'échappement pour que cela me soit immédiatement coincé.
Au fait, soyez prudent avec cette technique. Il dépend fortement du type de terminal dans lequel le programme fonctionne. Tous les émulateurs de terminaux ne donnent pas le même sens aux séquences comme celle-ci.
@ user2532621 comprise. C'est ce que sont les malédictions et TermCap. Cependant, je répondais à la question opposée: "Quelle est cette mise en œuvre?" Pas "Comment puis-je implémenter cela?"
Ceux-ci sont appelés séquences d'échappement ANSI et dérivées du Dec VT100 Terminal d'affichage introduit en 1978. P>
appelé code d'échappement ANSI. Je n'ai pas vu ceux utilisés depuis un moment. Voici une page qui explique à leur sujet: P>
Il semble inhabituel d'utiliser
% c code> pour formater une constante. Ce qui suit serait équivalent:
printf ("\ x1b [% d;% df", y, x); code>
Oui, populaire est également
'\ 033' code>. Si j'utilisais
% c code> Spécificateur de format, je l'écrirais comme
27 code> - que je connaissais bien être Echa (AKA
Ctrl - [ Code> ou
^ [ code>).