Zeile einrücken bei der Ausgabe auf der Konsole
-
@dirkb sagte in Zeile einrücken bei der Ausgabe auf der Konsole:
Da reicht ein Leerzeichen mit einer Mindestbreite von 35 (bzw) die aktuelle Länge) Zeichen aus.
Gute Idee, da wäre ich gar nicht drauf gekommen!
@dirkb sagte in Zeile einrücken bei der Ausgabe auf der Konsole:
(besser wäre die aktuelle Konsolenbreite)
würdest du die aktuelle Konsolenbreite vorher festlegen? ähnlich wie @Zhavok es vorgeschlagen hat?
Oder kann man es auch so lösen, dass sich das Format anpasst(also sich die Konstante ändert), nachdem ich das Programm gestartet habe, und dann erst auf den knopf zum maxmieren des Fensters klicke?
-
@honeybee sagte in Zeile einrücken bei der Ausgabe auf der Konsole:
Oder kann man es auch so lösen, dass sich das Format anpasst(also sich die Konstante ändert), nachdem ich das Programm gestartet habe, und dann erst auf den knopf zum maxmieren des Fensters klicke?
Klar. Dann ist es aber keine Konstante mehr sondern eine Variable.
Aber da wäre es sinnvoll, diesen Wert vom Ereignis "Fenstergröße geändert" steuern zu lassen.
-
@dirkb sagte in Zeile einrücken bei der Ausgabe auf der Konsole:
Aber da wäre es sinnvoll, diesen Wert vom Ereignis "Fenstergröße geändert" steuern zu lassen.
Ich hab versucht nachzulesen wie man so etwas verwirklichen kann, finde aber nichts sinnvolles. Kannst du noch genauer sagen wie du sowas mache würdest? Oder kennst du ne Seite wo ich das nachlesen kann?
-
Naja, für den Anfang könntest Du einfach vor jeder Ausgabe Deiner Daten die Konsolenbreite in Zeichen auslesen ...
-
@belli
Danke für deine Hilfe! Es ist noch nicht die perfekte Lösung, weil ich ja nach durchlaufen des Programms die Leerzeichen schon gesetzt habe und wenn ich dann das Fenster maximiere sie einfach mitten im text liegen aber immerhin kann ich jetzt vorher die Größe meines Fensters festlegen.
Für alle die es interessiert... ich habe jetzt folgende neue Methode in meinem Code eingefügt und anstelle der 202 die ich oben benutzt habe, setze ich jetzt "breite" in meiner Methode zum ausgeben der Datei ein.int columns, breite; void test::groesseDerKonsole() { CONSOLE_SCREEN_BUFFER_INFO csbi; GetConsoleScreenBufferInfo(GeStdHandle(STD_OUTPUT_HANDLE), &csbi); columns = csbi.srWindow.Right - csbi.srWindow.Left + 1; //Spaltenbreite breite = columns -35; }
-
Mhm ... Du könntest natürlich auch der Konsole eine von Dir gewünschte, unveränderliche Größe geben ...