[C++] Cursor eine Zeile nach oben?

KillaMarci

New member
Hallo Leute,
Ich muss einen Ladebalken erstellen, welcher von unten nach oben geht. Das ganze soll mit einer for Schleife realisiert werden. Habe auch alles fertig, allerdings verstehe ich nicht wie ich den Balken von unten nach oben füllen soll? Von oben nach unten wäre kein Problem, da könnte ich einfach die Escapesequenz "\n" nehmen, allerdings muss ich es ja andersrum machen, und genau dafür finde ich keine Escapesequenz. Ich dachte ich könnte das mit dem Vertikalen Tab "\v" machen, aber auch das funktioniert nicht.

Ich bräuchte sowas wie: "-> Eine Zeile nach oben -> Eins nach links -> Schreiben" (wiederhole bis Balken gefüllt ist) Dafür gibts aber anscheinend keine Escapesequenzen. 😕 Hat jemand eine Idee? Habe schon vieles ausprobiert...aber nichts viel funktionieren.

Danke für eure Hilfe.
 
Zuletzt bearbeitet:
Du könntest mit carriage return (\r) arbeiten. Ein Zeichen ausgeben, ein \r (dann bist du wieder am Anfang der Zeile), dann das 2. Zeichen ausgeben und noch ein \n.

Ich habs nicht ausprobiert, aber könnte funktionieren. 🙂
 
Damit komme ich leider auch wieder nur nach unten. 🙁

untendpxz.jpg


Das mit dem \r ist aber schonmal gut. Jetzt komme ich wenigstens wieder zurück nach links. Jetzt muss ich nurnoch einen Weg finden um nach oben zu klettern... 😕

Ich habe schon die verücktesten Ideen: Gibt es eine Möglichkeit das Gesamte Fenster und die Schrift um 180° zu drehen? Dann könnte ich ganz normal \n verwenden, und es würde zumindestens so aussehen, als würde es nach oben gehen. ^^
 
Zuletzt bearbeitet:
Nein, die Konsole einfach umdrehen geht nicht.

Dann kommst du nur mit Escape-Sequenzen nicht weiter Du musst den Text genau an eine best. Position schreiben (also den Cursor explizit an eine Stelle setzen):


 
Naja aber das setzen auf eine bestimmte Position würde doch den ganzen Sinn der for Schleife zerstören. Ich könnte ihn vielleicht erst auf eine bestimmte Position setzen (0%) und ihm dann sagen, dass er +1 auf die Y-Koordinate rechnen soll. Aber wenn die Schleife dann wiederholt wird dann ist er doch wieder auf der vorher festgelegten Position, rechnet wieder +1 und setzt das Zeichen wieder an die gleiche Stelle.

Ich versuche es gerade ungefähr so: SetCursor auf 0% (vor der for-Schleife) -> +1 auf Y -> GetCursor nimmt aktuelle Position auf und speichert sie -> aktuelle Cursorposition auslesen (Y+1) -> wieder +1 rechnen -> REPEAT

Komme aber gerade noch nicht so recht mit der Syntax klar...naja ich probier noch ein bisschen herum. Danke erstmal 😉
 
Habs dann geschafft. War einfacher als gedacht 😀

Hier für alle die vor dem selben Problem stehen/standen:
Code:
        for(int g=0; g<rand() % 100; g++)
        {
        gotoxy(x_lo+1,y_ru[B]-g[/B])
        cprintf("%c",219);
        }

Auf das -g kommts an...dadurch verändert sich die Y-Koordinate immer um -1 und geht somit nach oben.
 

Online-Statistiken

Zurzeit aktive Mitglieder
1
Zurzeit aktive Gäste
10
Besucher gesamt
11

Beliebte Forum-Themen

Zurück
Oben Unten