C++ string,char(字符串)與int,double(數(shù)型)的互相轉(zhuǎn)換

很早以前get√的技能,重新復(fù)習(xí)一下:-)
下面是主要的代碼:

...
#include <sstream> //必須包含的頭文件
...
stringstream stream; //聲明一個stringstream變量
int n;
string str;

//string轉(zhuǎn)int
stream << "1234"; //向stream中插入字符串"1234"
stream >> n; //從stream中提取剛插入的字符串"1234" 并將其賦予變量n完成字符串到int的轉(zhuǎn)換
cout << n << endl; 

stream.clear(); //同一stream進(jìn)行多次轉(zhuǎn)換應(yīng)調(diào)用成員函數(shù)clear

//int轉(zhuǎn)string
stream << 1234; //向stream中插入整型數(shù)1234
stream >> str; //從steam中提取剛插入的整型數(shù) 并將其賦予變量str完成整型數(shù)到string的轉(zhuǎn)換
cout << str << endl;

同理如char和double型等等的轉(zhuǎn)化.
不過注意一點(diǎn),當(dāng)不符合格式時:

stringstream stream; 
int n;
char str[100];
stream << "1234.12"; 
stream >> n; 
cout << n << endl; 

stream.clear(); 

stream << 1234.12; 
stream >> str;
cout << str << endl; 

輸出結(jié)果為:

1234
.121234.12

因?yàn)榱鬏斎胧亲詣悠ヅ涓袷降?所以小數(shù)點(diǎn)及小數(shù)點(diǎn)后面的部分就流向下一個.


最重要的事:

如果stringstream如果有多個轉(zhuǎn)換時一定一定一定要記得清空,即stream.clear()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容