The problem is in the part of your brain that handles intelligence.
Wat is er zo ranzig aan die C++ manier ?
Quadcore 6600 @ 3,3Ghz, 4 GB, 2 TB raid 5, GF 8400GS
P4 2.8G, 2 GB, 500GB diskspace, GF FX5200
dat het eerst in een char* gedumpt wordt en daarna pas in me string, en niet rechtstreeks.
ohja, en dat ik ook weer stdio.h moet includen voor sprintf
ohja, en dat ik ook weer stdio.h moet includen voor sprintf
The problem is in the part of your brain that handles intelligence.
nou en dat het niet rechtstreeks gaat, als
ostrstream s(blaat);
s << crap;
gewerkt had, was het ook niet rechtstreeks geweest.
Waarom moeilijk doen als het makkelijk kan.
ostrstream s(blaat);
s << crap;
gewerkt had, was het ook niet rechtstreeks geweest.
Waarom moeilijk doen als het makkelijk kan.
Quadcore 6600 @ 3,3Ghz, 4 GB, 2 TB raid 5, GF 8400GS
P4 2.8G, 2 GB, 500GB diskspace, GF FX5200
1) boost::lexical_cast<std::string>() converteert alles naar een string. Zie www.boost.orgOp woensdag 20 maart 2002 15:13 schreef Sjonny het volgende:
ok, ik probeer dus een double (of een int ofzo) in een string te krijgen, maar het wil niet helemaal:
code:
1 2 3 4 5 6 7 8 9 10 double crap = 12.45; string blaat(crap); // dit werkt dus niet. blaat << crap; // zo iets grappigs werkt ook niet. ostrstream s(blaat); // ipv s(char*, int strsize) werkt ook niet. s << crap; // heeft dan ook geen zin. /* ranzige c/c++ manier waar ik dus vanaf wil: */ char tmp[256]; sprintf(tmp, "%f", crap); blaat = crap;
kortom, ik zoek iets van sprintf, maar dan voor een string van STL.
2) En die doet intern een ostringstream << crap,
return ostringstream.str() Dus ostringstream s; s << crap; blaat = s.str() werkt (maar meestal heb je blaat als variabele helemaal niet meer nodig)
3) En als ik me goed herinner is er ook een versie voor oude GCC.
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Uhm, ik weet niet of je OOIT hebt gekeken hoe die C++ functies/operators voor dit soort acties zijn geïmplementeerd?! Nee, nou als ik zeg dat 99% van deze functies uiteindelijk zijn gebasseerd op de old-style C functies overdrijf ik niet. Maar misschien bedoel je dat het je code wat 'lelijk' maakt of niet?Op woensdag 20 maart 2002 15:33 schreef Sjonny het volgende:
dat het eerst in een char* gedumpt wordt en daarna pas in me string, en niet rechtstreeks.
ohja, en dat ik ook weer stdio.h moet includen voor sprintf
"The fastest code, is the code that is never called."
Hoe kom je bij dat getal?Op woensdag 20 maart 2002 20:34 schreef Primal het volgende:
[..]
Uhm, ik weet niet of je OOIT hebt gekeken hoe die C++ functies/operators voor dit soort acties zijn geïmplementeerd?! Nee, nou als ik zeg dat 99% van deze functies uiteindelijk zijn gebasseerd op de old-style C functies overdrijf ik niet. Maar misschien bedoel je dat het je code wat 'lelijk' maakt of niet?Dan moet ik je inderdaad wel gelijk geven, alhoewel ik van nature toch echt een die-hard C-er ben
![]()
de stream classes (en bv de std::string) gebruiken echt geen sprintf()-je om hun doel te bereiken.
Die zijn van de grond af opgebouwd, op een OO / C++ manier.
hmm.. op het web ben ik wel meer libs tegen gekomen die dit soort fratsen uithalen, maar zat ik niet echt op te wachten. dan ben ik nog blijer met die sprintf ertussen.
The problem is in the part of your brain that handles intelligence.
Ja - en je hebt het mis. Stringstreams zijn gewoon net zoals alle streams geimplementeerd, en dat is zonder sprintf(). Dat kan ook niet; streams werken wel voor wchar_t en sprintf() niet.Op woensdag 20 maart 2002 20:34 schreef Primal het volgende:
[..]
Uhm, ik weet niet of je OOIT hebt gekeken hoe die C++ functies/operators voor dit soort acties zijn geïmplementeerd?! Nee, nou als ik zeg dat 99% van deze functies uiteindelijk zijn gebasseerd op de old-style C functies overdrijf ik niet. [/sub]
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Pagina: 1