Ich dachte, das wäre ganz einfach, aber es gibt einige Schwierigkeiten. Wenn ich
std::string name = "John";
int age = 21;
Wie kombiniere ich sie, um eine einzige Zeichenfolge zu erhalten? "John21"
?
Ich dachte, das wäre ganz einfach, aber es gibt einige Schwierigkeiten. Wenn ich
std::string name = "John";
int age = 21;
Wie kombiniere ich sie, um eine einzige Zeichenfolge zu erhalten? "John21"
?
#include <sstream>
template <class T>
inline std::string to_string (const T& t)
{
std::stringstream ss;
ss << t;
return ss.str();
}
Dann würde Ihre Verwendung etwa so aussehen
std::string szName = "John";
int numAge = 23;
szName += to_string<int>(numAge);
cout << szName << endl;
Gegoogelt [und getestet :p ]
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
1 Stimmen
Herb Sutter hat einen guten Artikel zu diesem Thema: "Die Streichinstrumentenbauer von Manor Farm" . Er deckt
Boost::lexical_cast
,std::stringstream
,std::strstream
(die veraltet ist) undsprintf
vs.snprintf
.1 Stimmen
Lassen Sie mich dies noch ergänzen: Ich habe 'str = "hi"; str += 5; cout << str;' ausprobiert und keinen Effekt gesehen. Es stellte sich heraus, dass dies operator+=(char) aufruft und ein nicht druckbares Zeichen hinzufügt.