File stream formatieren



  • Hiho,

    ich habe einen wofstream,welche u.a. Zahlen rausschreibt. Diese sollen "schön" formatiert werden:

    1: 0 1 1
    2: 10 100 25

    Die Zahlen sollen also untereinander stehen. Nun habe ich bei den stram-Manipulatoren geschaut und width, precision usw entdeckt. Die werden aber irgendwie immer nur auf die erste Eingabe angewendet:

    file.width(10);
    filer << 1 << 10 < 100 << endl;
    

    Die 1 wird mit der width(10) formatiert, die 10 schon nicht mehr.
    Wie geht es, dass die Formatierung wirklich gültig bleibt?

    MfG Pellaeon



  • Exakt setw() und setfill() werden immer nur auf den nächsten operand des Streams angewendet.

    #include <iostream>
    #include <iomanip>
    filer << setw(10)  << 1 << setw(10)  << 10 < 100 << endl;
    

    Edit: Typos entfernt.



  • Also gibt es keine Möglichkeit, das einmal zu setzen, sodass es auf alle folgende Elemente angwwandt wird?



  • Du würdest bei printf(...) ja auch für jede Variable einen eigenen fixen Formatierungswert wählen müssen, ich kenne jedenfalls keine Methode die Füllzeichen oder Breitenformatierung dauerhaft im ostream speichert.



  • DeepCopy schrieb:

    Exakt setw() und setfill() werden immer nur auf den nächsten operand des Streams angewendet.

    setw schon, setfill hält sich aber, bis man was anderes setzt, glaube ich.


Anmelden zum Antworten