【菜鳥er】STL_stringstream
阿新 • • 發佈:2019-02-11
#include <bits/stdc++.h> using namespace std; //應用: //--------------數字轉字串,使用sprintf(char陣列名,型別,數字變數名) //--------------字串轉數字,使用sscanf(char陣列名,型別,&數字變數名) void Cfun(){ int num1 = 123; char s1[10]; sprintf(s1,"%d",num1); printf("%s\n",s1); char s2[]="456"; int num2; sscanf(s2,"%d",&num2); printf("%d\n",num2); /** //十進位制整數轉十六進位制字串 char str2[10]; int c=175; sprintf(str2,"%x",c); //十六進位制字串轉十進位制整數 char str5[]="AF"; int f; sscanf(str5,"%x",&f); */ } //#include <sstream> /** 三種類:istringstream、ostringstream和stringstream,分別用來進行流的輸入、輸出和輸入輸出操作。 *string到int的轉換 string result=”10000”; int n=0; stream<<result; stream>>n;//n等於10000 *多次轉換中使用同一個stringstream物件,記住再每次轉換前要使用clear()方法; */ //任意數值轉化成字串 template<class T> void to_string(string &result,const T& t){ ostringstream oss;//建立一個流 oss<<t;//把值傳遞如流中 result=oss.str();//獲取轉換後的字元轉並將其寫入result } //任意型別轉化 template<class out_type,class in_value>//將in_value值轉換成out_type型別 out_type convert(const in_value & t){ stringstream stream; stream<<t;//向流中傳值 out_type result;//這裡儲存轉換結果 stream>>result;//向result中寫入值 return result; /** 這樣使用convert(): double d; string salary; string s=”12.56”; d=convert<double>(s);//d等於12.56 salary=convert<string>(9000.0);//salary等於”9000” */ } void CPPfun(){ //常用轉化 stringstream stream;//建立stringstream物件 string result; int i = 1000; stream << i; //將int輸入流 stream >> result; //從stream中抽取前面插入的int值 cout<< result <<endl; // print the string "1000" stream.clear(); //在進行多次轉換前,必須清除stream } int main(){ Cfun(); CPPfun(); }