int to string Umwandlung
-
Hallo,
wie kann man einen int-Wert in einen string-Wert umwandeln, zum Beispiel für GUI-Anwendungen?
Also etwa so:int aint = 1; string astring; Umwandelfunktion(aint, astring);
-
-
Guck mal im folgenden FAQ-Beitrag:
Einmal Zahl nach String und zurückGreetz
-
OK, vielen Dank.
Hatte ich mit der Suchenfunktion leider nicht gefunden.
-
Hmm kann sein das ich gerade nen Dekkel vorm Kopp hab, aber folgendes ist nicht so sinnvoll:
#include <sstream> #include <string> #include <iostream> int main() { unsigned int i = 2; std::ostringstream ss; ss << i; std::string string(ss.str()); std::cout << string << std::endl; }denn das o in std::ostringstream steht ja eigentlich für out und man gibt nur den Integer i rein, folglich müsste es eigentlich std::istringstream heißen ... da str() kein Streamoperator ist ... sondern eine normale Funktion ... kann jetzt aber auch sein das ich müll erzähle ^^
-
Hallo
Man kann auch einfach boots::lexival_cast verwenden und hat keine Probleme.
chrische
-
(D)Evil schrieb:
Hmm kann sein das ich gerade nen Dekkel vorm Kopp hab, aber folgendes ist nicht so sinnvoll: ... denn das o in std::ostringstream steht ja eigentlich für out und man gibt nur den Integer i rein, folglich müsste es eigentlich std::istringstream heißen ... da str() kein Streamoperator ist ... sondern eine normale Funktion ... kann jetzt aber auch sein das ich müll erzähle ^^
Das o bedeutet, das ein String ausgegeben wird, wie bei std::cout allgemein ausgegeben wird. str hat nichts mit normalen Streammethoden zu tun, sondern baut den resultierenden String zusammen und gibt ihn zurück.
Du hättest natürlich auch einfach mal den Code durch deinen Compiler jagen können ...
-
.filmor schrieb:
Du hättest natürlich auch einfach mal den Code durch deinen Compiler jagen können ...

Hmm ... was soll das bringen? Der wird dazu nichts sagen ob ich lieber istringstream oder ostringstream verwende.
Hmm ...aber ich meinte folgendes:
#include <sstream> #include <string> #include <iostream> int main() { // std::ostringstream unsigned int i = 2; std::ostringstream ss; ss.str("1123123"); ss >> i; // DANN ist ostringstream richtig ... std::cout << i << std::endl; // std::istringstream std::istringstream ss; ss << i; // Hier schieben wa ja was rein ... std::string string(ss.str()); std::cout << string << std::endl; }...
-
(D)Evil schrieb:
Hmm ... was soll das bringen? Der wird dazu nichts sagen ob ich lieber istringstream oder ostringstream verwende.
Natürlich wird er dir was sagen. Ein istringstream ist nämlich ein istream, während ein ostringstream ein ostream ist. Für ersteren ist der Operator >> definiert, für letzteren der Operator <<, was dir der Compiler auch sehr freundlich beigebracht hätte

Nochmal zur Erinnerung: std::cin ist ein istream, std::cout ist ein ostream.(D)Evil schrieb:
Hmm ...aber ich meinte folgendes:...
Bittschön, das sagt g++ (und er hat Recht ;)) (ich hab nur das erste ss zu os und das zweite zu is gemacht):
test.cpp: In function 'int main()': test.cpp:11: error: no match for 'operator>>' in 'os >> i' test.cpp:16: error: no match for 'operator<<' in 'is << i'
-
Hmm ok hast mich überzeugt ^^