簡體   English   中英

如何使用stringstream將int分配給字符串?

[英]how do I assign an int to a string with stringstream?

如何使用stringstreamint分配給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;
}

使用ctor stringstream(mystr2)創建字符串流時, stringstream(mystr2) mystr2復制為緩沖區的初始內容。 流上的后續操作不會修改mystr2

要獲取流的內容,可以使用str方法:

int b = 10;
string mystr2;
stringstream ss = stringstream(mystr2);  
ss << b;
cout << mystr2.str() << endl; 

請參見構造函數str方法。

您的字面問題的答案是:

int b = 10;
std::string mystr2 = static_cast<stringstream &>(stringstream()<<b).str();
cout << mystr2 << endl;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM