zweiter Teil wird in Funktion abgeschnitten
-
Hallo
Ich habe mir eine Funktion zum Casten geschrieben und wenn ich dieser einen das:
std::string Test = "Hallo Du";übergeb, dann wird immer der zweite Teil abgeschnitten. Ich bekomme also nur
"Hallo". Kann mir jemand sagen, woran das liegt und was ich dagegen machen kann?Hier die Funktion:
template<class TO, class FROM> TO Cast(FROM Y) { std::stringstream Temp; Temp<<Y; TO Temp1; Temp>>Temp1; return Temp1; }chrische
-
Der Operator >> vom istream liest wort weise ein.
Da du anscheinend wieso nur nach strings casten willst, könntest du es so machen:
#include <sstream> #include <iostream> template<class FROM> std::string Cast(FROM Y) { std::stringstream Temp; Temp<<Y; return Temp.str(); } int main() { const char* Test = "Hallo du"; std::cout << Cast<std::string>(Test) << std::endl; }mfg.
-
Hallo
Erstmal danke für die Hilfe, aber gibt es eine Möglichkeit, dass auch anders zu machen, weil ich nämlich nicht nur nach strings sondern auch nach int, usw. mit dieser Funktion caste.
chrische
-
Hallo
so ein lexical_cast ist zwar sehr nützlich, aber nicht überall notwendig.
int main() { const char* Test = "Hallo du"; std::string Test2 = Test; std::cout << Test2 << std::endl; }bis bald
akari