如何使用int
将string
分配给stringstream
?
“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;
}
答案 0 :(得分:4)
这应该做:
stringstream ss;
ss << a;
ss >> mystr;
ss.clear();
ss << b;
ss >> mystr2;
答案 1 :(得分:1)
int b = 10;
string mystr2;
stringstream ss;
ss << b;
cout << ss.str() << endl; // prints 10
答案 2 :(得分:0)
这将在下面正确打印出'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;
}
答案 3 :(得分:0)
使用ctor stringstream(mystr2)
创建字符串流时,mystr2
将被复制为缓冲区的初始内容。 mystr2
不会被流上的后续操作修改。
要获取流的内容,您可以使用str
方法:
int b = 10;
string mystr2;
stringstream ss = stringstream(mystr2);
ss << b;
cout << mystr2.str() << endl;
请参阅constructor和str方法。
答案 4 :(得分:0)
你的字面问题的答案是:
int b = 10;
std::string mystr2 = static_cast<stringstream &>(stringstream()<<b).str();
cout << mystr2 << endl;