stringstream的用法 請(qǐng)教在C 里如何把string類(lèi)型轉(zhuǎn)換成long型?
請(qǐng)教在C 里如何把string類(lèi)型轉(zhuǎn)換成long型?首先,ATOI不是VC的庫(kù)函數(shù),而是標(biāo)準(zhǔn)C的庫(kù)函數(shù),如果這個(gè)函數(shù)不在C中使用,可以通過(guò)stringstream進(jìn)行轉(zhuǎn)換,如下所示:#include
請(qǐng)教在C 里如何把string類(lèi)型轉(zhuǎn)換成long型?
首先,ATOI不是VC的庫(kù)函數(shù),而是標(biāo)準(zhǔn)C的庫(kù)函數(shù),如果這個(gè)函數(shù)不在C中使用,可以通過(guò)stringstream進(jìn)行轉(zhuǎn)換,如下所示:#include<ssstream>std::String str(“123”)long numstd::stringstream sstrsstr<<strssstr>>numsstr.clear清除()//必須在下次轉(zhuǎn)換之前調(diào)用此函數(shù)。如果您使用boost庫(kù),它會(huì)更簡(jiǎn)單:#include<boost/legal#鑄造hpp和GTP管柱str(“123”)long num=boost::詞法轉(zhuǎn)換<long>(str)當(dāng)然,boost的內(nèi)部實(shí)現(xiàn)也是以stringstream的方式進(jìn)行轉(zhuǎn)換的
istringstream SS(s)
vector
int i
而(SS>>I)
{
v.pushu在后面有兩種方式將字符串轉(zhuǎn)換為int(i)
c 中string數(shù)據(jù)按空格分割轉(zhuǎn)到int數(shù)組?
C:1。在C標(biāo)準(zhǔn)庫(kù)中,使用ATOI:
#include<cstdlib>#include<string>std::string text=“152”int number=STD::ATOI(text)。C) _ustr())if(errno==ERANGE)//可能是STD::errno{//數(shù)字可能因?yàn)樘蠡蛱《鵁o(wú)法完全存儲(chǔ)}else if(errno==??)//可能是einval{//無(wú)法轉(zhuǎn)換為數(shù)字}
2。在C標(biāo)準(zhǔn)庫(kù)中,使用stringstream:(stringstream可用于各種數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換)
#include<ssstream>#include<string>std::string Text=“152”int numberstd::stringstream SSSS<< Text//可以是其他數(shù)據(jù)類(lèi)型SS>> number//string-> intif(!ss.很好()){//發(fā)生錯(cuò)誤}SS<<編號(hào)//int->stringstring str=不銹鋼結(jié)構(gòu)()如果(!ss.很好()){//發(fā)生錯(cuò)誤}