[英]how do I assign an int to a string with stringstream?
如何使用stringstream
將int
分配給string
?
在以下示例中,“ stringstream(mystr2) << b;
”未將b
分配給mystr2
:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
string mystr = "1204";
int a;
stringstream(mystr) >> a;
cout << a << endl; // prints 1204
int b = 10;
string mystr2;
stringstream(mystr2) << b;
cout << mystr2 << endl; // prints nothing
return 0;
}
應該這樣做:
stringstream ss;
ss << a;
ss >> mystr;
ss.clear();
ss << b;
ss >> mystr2;
int b = 10;
string mystr2;
stringstream ss;
ss << b;
cout << ss.str() << endl; // prints 10
這將在下面正確打印出“ 10”。
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
string mystr = "1204";
int a;
stringstream(mystr) >> a;
cout << a << endl; // prints 1204
int b = 10;
string mystr2;
stringstream ss;
ss << b;
ss >> mystr2;
cout << mystr2 << endl; // prints 10
return 0;
}
您的字面問題的答案是:
int b = 10;
std::string mystr2 = static_cast<stringstream &>(stringstream()<<b).str();
cout << mystr2 << endl;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.