Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Stringstream Problem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.12.2004, 13:27 Uhr
derphilipder



Habe folgendes Problem:

C++:

    stringstream sstr;
    string str;

    sstr<<setw(10)<<(*skaldat)[i].value;
    sstr>>str;    
    sstr.clear();
    }



Ich meine, daß nach diesem Aufruf im string, falls der eingelesene Wert kürzer als zehn Zeichen ist, führende Leerzeichen stehen müssten.
Ist aber nicht der Fall.

Will ich aber!
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.12.2004, 13:52 Uhr
KaraHead




C++:
   sstr<<setw(10)<<setfill('*')<<(*skaldat)[i].value;
    sstr>>str;    
    sstr.clear();


So werden die leerzeichen mit * gefüllt.
Meinst du sowas?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.12.2004, 14:28 Uhr
virtual
Sexiest Bit alive
(Operator)


Leerzeichen werden per default von Streams übersprungen. Du kannst Dies verhindern, indem du den noskipws Manipulator verwendest oder das entsprechende Streamflag löschst.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.12.2004, 15:33 Uhr
derphilipder



@Virtual

Meinst Du so:
sstr<<setw(6)<<noskipws<<(*skaldat)[i].value;

Wenn ich das mache, ist der string leer.
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.12.2004, 16:22 Uhr
derphilipder



Nochwas:

C++:
    for(int i=0; i<skaldat->size();i++)
    {
        val=(*skaldat)[i].value;
        if(val>0.0)
        {
            if(val<1000.0)
            {
                sstr<<setw(6)<<setprecision(3)<<val;
            }
            else
            {
                if(val<10000.0)
                {
                    sstr<<setw(6)<<setprecision(4)<<scientific<<val;
                }
                else
                {
                    sstr<<setw(6)<<setprecision(3)<<scientific<<val;
                }
            }
        }
        else
        {
            if(val<0.01)
            {
                sstr<<setw(6)<<setprecision(3)<<scientific<<val;
            }
            else
            {
                sstr<<setw(6)<<setprecision(3)<<val;
            }
        }


Hier wird, egal wohin verzweigt wird, in scientific ausgegeben...warum?

Muss ich da irgendwas zurücksetzen?
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.12.2004, 16:29 Uhr
derphilipder



Habs schon:

sstr.unsetf(ios_base::scientific);
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
11.12.2004, 08:33 Uhr
virtual
Sexiest Bit alive
(Operator)


Naja, Dein Problem mit den Whitespaces läßt sich am trivialsten so lösen:

C++:
stringstream sstr;
    string str;

    sstr<<setw(10)<<(*skaldat)[i].value;
    str = sstr.str();    
    sstr.clear();


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
11.12.2004, 11:02 Uhr
derphilipder



Ok, das werd ich mal versuchen.
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: