很早以前get√的技能,重新復(fù)習(xí)一下:-)
下面是主要的代碼:
...
#include <sstream> //必須包含的頭文件
...
stringstream stream; //聲明一個(gè)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)化.
不過(guò)注意一點(diǎn),當(dāng)不符合格式時(shí):
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)榱鬏斎胧亲詣?dòng)匹配格式的,所以小數(shù)點(diǎn)及小數(shù)點(diǎn)后面的部分就流向下一個(gè).
最重要的事:
如果stringstream如果有多個(gè)轉(zhuǎn)換時(shí)一定一定一定要記得清空,即stream.clear()