gotoxy() à l'aide de la fonction printf() 's position
Bonjour
je suis en train de travailler sur un projet qui ont besoin de la gotoxy()
fonction
j'ai lu gotoxy() de la mise en œuvre de Linux à l'aide de printf
je me demande pourquoi l'
void gotoxy(int x,int y)
{
printf("%c[%d;%df",0x1B,y,x);
}
besoin de changer le x y de l'ordre dans printf, qui est juste à adapter le système de coordonnées?
dans mon chemin, je l'ai changer pour printf("%c[%d;%df",0x1B,x,y)
pour répondre à mes besoins
stil, lors de mon utilisation de ce gotoxy()
en boucle comme ceci:
for( int i = 0; i < 12; i++ ) {
for( int j = 0; j < 12; j++ ) {
gotoxy( i , j );
usleep(500000);
}
}
lorsque i = 0 et i = 0, le curseur sur la première ligne
je me demande pourquoi le curseur de ne pas aller à la deuxième ligne lorsque i = 1?
Vous devez vous connecter pour publier un commentaire.
L'ordre de x et y est important parce que les noms des variables n'ont pas de sens pour le fonctionnement de l'gotoxy() fonction.
Que la fonction est outputing un terminal de commande de la séquence qui se déplace aux coordonnées spécifiées. Lorsque le terminal voit que l'ordre des commandes et des processus, y est attendu le premier.
Par la manière, être prudent avec cette solution puisqu'elle est fortement dépendante du type de terminal dans lequel le programme est exécuté. Afin d'obtenir de large support de terminal avec un mouvement aléatoire et "dessin" sur un écran du terminal,
ncurses
oucurses
sont votre meilleur pari. Ils sont difficiles à apprendre, au premier bien que.OP: "pourquoi la nécessité de changer le x y de l'ordre".
La position du curseur de la commande format est
La besoin se pose en raison de correspondre à ce format et votre
y
variable comme le LIGNE,y
vient en premier. (Vous pouvez faire pivoter votre écran de 90 degrés à la place).OP: pourquoi le curseur de ne pas aller à la deuxième ligne lorsque i = 1?
La position de départ, à la supérieure gauche de l'écran est à l'Origine de la ligne de 1, colonne 1
Remarque: Vous pouvez mettre le caractère d'échappement dans le format,
<ESC>[{ROW};{COLUMN}f
a trait à la fonction de toute la chose à la maison pour moi.La colonne et la ligne des positions de ne pas démarrer à 0 lors de l'utilisation du terminal des séquences d'échappement. Ils commencent à 1.
Vous devez rincer
stdout
de voir déplacer le curseur.GotoXY est une fonction ou une procédure qui positionne le curseur à la position (X,Y), X à l'horizontale, à Y dans la direction verticale par rapport à l'origine de la fenêtre en cours. L'origine est situé à (1,1), le coin supérieur gauche de la fenêtre.