stringstreams mehrmals verwenden
-
Hi,
ich habe 2 Zahlen als C-Strings vorliegen, möchte diese addieren (also die Zahlen, kein concat) und das Ergebnis wieder als String haben. Ich habe folgenden Code:
std::stringstream ssText; std::string sText; int nT1; int nT2; char text1[20]; char text2[20]; ssText<<text1; ssText>>nT1 ssText<<text2; ssText>>nT2; ssText<< (nT1 + nT2); sText = ssText.str();
Allerdings wird durch ssText<<text2 text2 angefügt, also text1 ist irgendwie noch drin, darum funzt das nicht...
Wie muss ich das machen, damit es das gewünchte Ergebnis liefert?
-
Dazwichen stringstream::clear aufrufen? Die Klammern sind übrigens unnötig, da operator<< eine niedrigere Priorität hat als operator+.
-
Shlo schrieb:
Dazwichen stringstream::clear aufrufen?
Das löscht nur die Fehlerbits des Streams. Den Inhalt löscht man durch den Aufruf der Methode str mit einem leeren String ("") als Argument.
-
Hm, gibt es da keine elegantere Methode als immer einen Leerstrting zuzuweisen?
-
Nein.
-
Oki, danke...
-
Ich würd mit der GMP dran gehen, dann ist es gleich egal, wie groß die Zahlen sind:
#include <gmpxx.h> //... mpz_class x = "123"; mpz_class y = "234"; std::cout << x + y << std::endl;
-
GMP???
Hab ich noch nie gehört!
Habe auch in der MSDN nix dazu gefunden!
Was macht das, wo ist das her?