gotoxy () - Funktion mit printf() 's position
Hallo
ich bin ein Projekt, die Notwendigkeit der gotoxy()
Funktion
ich habe gelesen, gotoxy () - Implementierung für Linux verwenden von printf
ich Frage mich, warum die
void gotoxy(int x,int y)
{
printf("%c[%d;%df",0x1B,y,x);
}
müssen, ändern Sie die x-y-Reihenfolge, in printf, ist, dass nur auf passen das Koordinatensystem?
in meinen Weg, ich ändere es in printf("%c[%d;%df",0x1B,x,y)
zu meinen Anforderungen entsprechen
stil, während meine mit diesem gotoxy()
in der for-Schleife wie diese:
for( int i = 0; i < 12; i++ ) {
for( int j = 0; j < 12; j++ ) {
gotoxy( i , j );
usleep(500000);
}
}
wenn i = 0 und i = 0, wird der cursor auf die erste Zeile
ich Frage mich, warum der cursor wird nicht gehen auf die zweite Zeile, wenn i = 1?
InformationsquelleAutor good5dog5 | 2013-08-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Reihenfolge von x und y ist wichtig, weil die Namen der Variablen haben keine Bedeutung für den Betrieb des gotoxy() Funktion.
Diese Funktion ist bestens, ein terminal-Befehls-Sequenz, bewegt sich an den angegebenen Koordinaten. Wenn das terminal sieht, dass die Befehlsfolge und-Prozesse, y erwartet wird erste.
By the way, seien Sie vorsichtig mit dieser Lösung, da dies ist stark abhängig von der Art des Terminals, innerhalb derer das Programm ausgeführt wird. Um große terminal-support mit random movement und "Zeichnung" auf einem terminal-Bildschirm
ncurses
odercurses
sind Ihre beste Wette. Sie sind anspruchsvoll zu lernen, auf den ersten obwohl.InformationsquelleAutor ash
OP: "warum die Notwendigkeit der Veränderung der x-y-um".
Die cursor-position-Befehl wird das format
Den müssen entsteht, weil zu entsprechen, die format und haben Ihre
y
variable als ZEILE,y
kommt zuerst. (Sie können drehen Sie Ihren Bildschirm um 90 Grad statt).OP: warum cursor wird nicht gehen auf die zweite Zeile, wenn i = 1?
Die home-position, an der oberen linken Seite des Bildschirms befindet sich der Ursprung als Linie 1, Spalte 1
Hinweis: Sie können das escape-Zeichen in das format,
<ESC>[{ROW};{COLUMN}f
bezieht sich auf die Funktion brachte das ganze Haus für mich.InformationsquelleAutor chux
Positionen der Spalte und Zeile nicht bei 0 beginnen, wenn die Verwendung der terminal-escape-Sequenzen. Sie beginnen bei 1.
Müssen Sie bündig
stdout
zu sehen, den cursor bewegen.InformationsquelleAutor jxh
GotoXY ist eine Funktion oder Prozedur, die Positionen der cursor (X,Y), X in der horizontalen, Y in der vertikalen Richtung relativ zum Nullpunkt des aktuellen Fensters. Der Ursprung liegt bei (1,1), der oberen linken Ecke des Fensters.
InformationsquelleAutor Om Prakash Kumar