stringstream 是C++提供的串流(stream)事件
頭檔案:
#include<sstream>
功能和C語言的sprintf一樣
都是講常量字元串和變量組合起來,形成新的字元串常量
用法:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
string print(string &name, int *age, float weight) {
stringstream ret;
ret << "我的名字叫:" << name << ",我今年:" << *age << "歲,我的體重是:" << weight << endl;
// 必須用 .str() 把他轉化位string類型的字元串才可以傳回,才不會報錯
return ret.str();
}
int main(void) {
stringstream ret;
string tmp;
int age = 20;
float weight = 120.0;
ret << "我是C++學習者,年齡:" << age << ",體重:" << weight << endl;
ret >> tmp;
// 或者:tmp = ret.str(); 必須使用 .str() 将他轉化成string類型的字元串,才可以指派
cout << tmp << endl;
cout << endl << "=====================================" << endl << endl;
// 也可以用做函數傳回值使用
string name = "小紅";
string test = print(name, &age, weight);
cout << test << endl;
system("pause");
return 0;
}
運作代碼截圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL5ZVbilnRXp1c5Y0Y35kMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1YzNzUzMygTMzITMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)