*iterator auf string in Int umwandeln
-
Guten Tag, habe eine bescheidene frage wie kann man den Wert(string z.b 110) wo der *iterator drauf zeigt in einen intger umwandeln ?
grüße
-
Hallo
So wie jeden String auch. Und wie das geht kannst du in der FAQ hier im C++ Forum nachlesen, im Thread "Einmal String und zurück"
bis bald
akari
-
ich gehe mal von aus das du den beitrag von HumeSikkins meinst ,
dann werd ich da wohl noch etwas falsch machen ok ich schau das nochmal genau an,
besten dank
-
wenn ich nun aber
string eingangstr = *iter; int eingang = atoi(eingangstr);nehme,
melder er mir immer cannot convert string du const char* to int atoi (const char*)(hier in zeile 2)
-
Hallo
Weil atoi ja auch die alte C-Variante ist, die nur für C-Strings funktioniert :
string eingangstr = *iter; int eingang = atoi(eingangstr.c_str());Verwende lieber die weiter unten angegebene C++ Variante mit dem std::stringstream.
bis bald
akari
-
std::stringstream s; s << *iter; int eingang = 0; s >> eingang;Oder gleich boost::lexical_cast<T>
-
jepp das klappt gut genau so wie ich es möchte
nu mal eine adere frage und zwar kann ich das ja sicherlich in eine funktion packen, die den *iter als string empfängt und nach int umwandelt, wie gibt man denn den int wert aus der funkton wieder zurück ?.
-
return value;?
-
int cast(std::string const& source) { std::ostringstream ss(source); int value(0); ss >> value; return value; }=>
int sample = cast("100000001");=>
template <typename destination_type> destination_type lexical_cast(std::string const& source) { std::ostringstream ss(source); destination_type value; ss >> value; return value; }
-
(D)Evil schrieb:
template <typename destination_type> destination_type lexical_cast(std::string const& source) { std::ostringstream ss(source); destination_type value; ss >> value; return value; }knapp daneben.
template <typename destination_type> destination_type lexical_cast(std::string const& source) { std::istringstream ss(source); destination_type value; ss >> value; return value; }warum aber nicht auch für source ein template verwenden? (oder ganz auf boost::lexical_cast vertrauen?)
-
besten dank hatte anstatt int funktion void funkktion genommen,,,das klappt ja nicht ganz
