stringstream width und precision: float mit definierter Länge und fillcharacters ausgeben



  • Servus,

    ich schreibe gerade ein bißchen alten snprintf() Code nach std::ostringstream um.

    Dabei stellt sich folgendes Problem: Ich möchte einen float mit width 3, fixed point, precision 1 ausgeben.

    Also so:

    24.7
     1.3
    

    Wenn ich folgendes mache

    std::ostringstream str;
    str.setf(std::ios::fixed,std::ios::floatfield);
    str.width(3);
    str.precision(1);
    str << 1.3;
    

    ist str.str()

    1.3
    

    und nicht

    1.3
    

    Was mach ich falsch?

    Gruß,
    Philipp

    PS: Bezieht width eigentlich das Vorzeichen mit ein, wenn es ausgegeben wird?



  • Du willst width 4.



  • Oh mann. Klarer Fall von facepalm. Hätte mir ja denken können, dass der Punkt ein Character ist.

    Dankeschön.


Anmelden zum Antworten