Konsole gibt nur 298 Zeilen wieder



  • Hallo,
    ich bin C++ Anfänger und steht vor einem Problem, bei dem ich nicht weiß, wie das lösen kann.

    Und zwar habe ich eine for-Schleife, die mir dem Wert per Konsole ausgibt:

    for( float i = 0; i <= 1000; i+= 1 ) {
        float temp = tempCurve.value(i);
        cout << i<< "         " << temp << endl;
      }
    

    Problem ist aber, dass die Konsole nach 298 Zeilen "voll" ist und dementsprechend die Werte davor nicht mehr sichtbar sind. Bei einer Anzahl von 1000 sehe ich also nur die Werte von 702-1000.

    Ich möchte jedoch gern alle Werte, die die Schleife durchläuft in der Konsole angezeigt bekommen.

    Ist das eine Eigenschaft der Konsole, oder kann ich das irgendwo einstellen?



  • C++ kennt keine Konsole, dementsprechend ist es eine Eigenheit deines Betriebssystemes, die du nicht mit Standard-Mitteln beeinflussen kannst.

    Entweder du stauchst die Ausgabe etwas zusammen, indem du mehrere Werte auf eine Zeile schreibst oder du musst eine Funktion deines Betriebssystems nutzen, um die groesse des Konsolen-Buffers zu beeinflussen.

    Unter Windows ist beispielsweise SetConsoleScreenBufferSize deine Wahl.

    Wobei ich mein Programmdesign nochmal ueberdenken wuerde, wenn ich dem Anwender so einen Ausgabebrocken vorsetze



  • Bei einem Konsolenprogramm kannst du die Ausgabe auch ganz leicht in eine Datei umleiten:

    Programmname.exe > Ausgabedatei.txt
    

    Dann kannst du dir die Ausgabedatei in einem Editor ansehen.



  • Das Anzeigen der Werte dient mir nur zur Kontrolle.

    Hab mittlerweile eine Textausgabe eingerichtet.



  • BlueGene schrieb:

    Das Anzeigen der Werte dient mir nur zur Kontrolle.

    Hab mittlerweile eine Textausgabe eingerichtet.

    Es wäre sinnvoll, alles sowohl auf der Konsole als auch später in der Log-Datei lesen zu können.

    Dazu kannst du dir einen Streambuffer schreiben und dann bspw. cout darauf umleiten.

    Oder du benutzt einen Logger, der gleichzeitig in cout und in einen ofstream schreibt.



  • Du kannst unter Windows die Anzeigelänge der Konsole auch irgendwo einstellen, wenn du bei der Ausführung auf das cmd-Icon in der Titelleiste klickst und dann auf Einstellungen gehst.



  • Das ist keine Eigenschaft der Konsole. Das ist ein einfaches Platzproblem. Das passiert auch mit einem Stück Papier und einen Stift. Wenn Du mit dem Stift eine bestimmte Zeichengröße verwendest, dann ist das Papier nach einer endlichen Anzahl von Zeichen voll geschrieben.



  • blubb schrieb:

    Das ist keine Eigenschaft der Konsole. Das ist ein einfaches Platzproblem. Das passiert auch mit einem Stück Papier und einen Stift. Wenn Du mit dem Stift eine bestimmte Zeichengröße verwendest, dann ist das Papier nach einer endlichen Anzahl von Zeichen voll geschrieben.

    Du kannst aber ein anderes Papier verwenden?!


Anmelden zum Antworten