Formartierte ausgabe am bildschirm
-
ich moechte gerne einen schleifenzaehler am bildschrim ausgeben, ohne immer eine neue zeile zu starten.
// Pseudo code ... cout.cursorAt(zeile, spalte); cout << "Aktuelles Element: "; ... for (int i=0; i<anzElement; i++) { ... cout.cursorAt(zeile, spalte + 20); //soll hinter "Aktuelles Element: " stehen cout << myarry[i]; ... }
nur leider habe ich bisher keine cout.cursorAt(zeile, spalte);
methode gefunden....wie kann man sowas mit moeglichst geringem aufwand hinbekommen?
(falls moeglich it einem kleinen beispiel)
danke vorab
[ Dieser Beitrag wurde am 30.05.2003 um 11:21 Uhr von Belgarad editiert. ]
[ Dieser Beitrag wurde am 30.05.2003 um 11:22 Uhr von Belgarad editiert. ]
-
Keine direkte Compiler-Frage, verschoben nach Dos/Konsole.
-
Konsolen-FAQ: Improved Console unter allen Win-Konsolen-Versionen. Sollte es unter DOS laufen bitte nochmals melden.
MfG SideWinder
-
Nein - soll nicht unter DOS/WIn laufen sondern unter linux (mit gcc).
any ideas?
(falls moeglich _ohne_ esc sequenzen *duck*)
-
Falls du an Linux denkst liegt der Garrett falsch mit seiner Verschieberei :).
Tut mir leid aber du wirst nochmals weitergeleitet
Verschoben nach Linux/Unix.
MfG SideWinder
-
dachte spontan auch an esc seq/control codes.. wäre wohl auch der geringste
aufwand.. was spricht denn dagegen?.. sonst.. hm... man ncurses
-
ich moechte gerne einen schleifenzaehler am bildschrim ausgeben, ohne immer eine neue zeile zu starten.
Mit \r springt der Cursor an den Anfang der Zeile.
for(...)
cout<<"\rAktuelles Elemement: "<<i;
-
danke, jedoch - gibt es mehr positionierungsmoeglichkeiten?
beispiel ausgabe:
wert1: 11 vorher: 223
wert2: 12 vorher: 113
wert3: 14 vorher: 101hier wuerden unterschiedliche programmteile zu unterschiedlichen zeiten ihre werte an festen positionen ausgeben muessen.
das das beliebig komplex sein kann, will ich nicht immer alles neu schreiben lassen, sonder nur die aenderungen....
-
Hallo
Das komfortabelste ist die Benutzung der ncurses.
Sonst könntest du auch ne ansi sequenz in nen streammanipulator kapseln.class cursorAt { private: int line; int pos; public: cursorAt(int pline,int ppos):line(pline),pos(ppos){} friend ostream &operator<<(ostream &os,const cursorAt &obj); }; ostream &operator<<(ostream &os,const cursorAt &obj) { //dein Ansi oder ncurses code hier return os; }
-
danke. das sieht sehr gut aus.
muss mich dann wohl doch in ncurses einlesen, bzw. hast du ein bespiel zur hand?
-
HI
Müsste ich auch erst nachschauen. Ber die Manpage hilft sehr.
Musst nur daran denken die Cursorposition dann wieder auf normal zu stellen.
Was auch immer dann normal ist.//------ snip ------- const int Lnormal=5; const int Znormal=0; cout<<cursorAt(10,10)<<"Dein Text"; cout<<cursorAt(Lnormal,Znormal)<<"Naechster Text"; //------ snap -------
-
Schon mal was von ncurses gehört? Ist echt "Geil", was da so alles geht, habe heute den ganzen Tag damit gecodet. Wenn man sich mal eingewöhnt hat, geht da wirklich richtig viel. Farbe, Fenster, Panels und Mause. Was will man mehr???
gruß
dose
-
Original erstellt von dose:
**Schon mal was von ncurses gehört? Ist echt "Geil", was da so alles geht, habe heute den ganzen Tag damit gecodet. Wenn man sich mal eingewöhnt hat, geht da wirklich richtig viel. Farbe, Fenster, Panels und Mause. Was will man mehr???**
Wir reden doch die ganze Zeite von Ansi Sequenzen, oder ncurses. Er hat halt die Wahl zwischen beidem. Aber da du sowieso gerade drin bist, poste doch mal die Ausgabefunktion bei der man die Spalten und Zeilenzahl mit angeben muss.
Ich meine die normale nicht die für Fenster. Wäre nett.
-
mvprintw(3NCURSES)