stringstream的用法 請教在C 里如何把string類型轉(zhuǎn)換成long型?
請教在C 里如何把string類型轉(zhuǎn)換成long型?首先,ATOI不是VC的庫函數(shù),而是標準C的庫函數(shù),如果這個函數(shù)不在C中使用,可以通過stringstream進行轉(zhuǎn)換,如下所示:#include
請教在C 里如何把string類型轉(zhuǎn)換成long型?
首先,ATOI不是VC的庫函數(shù),而是標準C的庫函數(shù),如果這個函數(shù)不在C中使用,可以通過stringstream進行轉(zhuǎn)換,如下所示:#include<ssstream>std::String str(“123”)long numstd::stringstream sstrsstr<<strssstr>>numsstr.clear清除()//必須在下次轉(zhuǎn)換之前調(diào)用此函數(shù)。如果您使用boost庫,它會更簡單:#include<boost/legal#鑄造hpp和GTP管柱str(“123”)long num=boost::詞法轉(zhuǎn)換<long>(str)當然,boost的內(nèi)部實現(xiàn)也是以stringstream的方式進行轉(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標準庫中,使用ATOI:
#include<cstdlib>#include<string>std::string text=“152”int number=STD::ATOI(text)。C) _ustr())if(errno==ERANGE)//可能是STD::errno{//數(shù)字可能因為太大或太小而無法完全存儲}else if(errno==??)//可能是einval{//無法轉(zhuǎn)換為數(shù)字}
2。在C標準庫中,使用stringstream:(stringstream可用于各種數(shù)據(jù)類型之間的轉(zhuǎn)換)
#include<ssstream>#include<string>std::string Text=“152”int numberstd::stringstream SSSS<< Text//可以是其他數(shù)據(jù)類型SS>> number//string-> intif(!ss.很好()){//發(fā)生錯誤}SS<<編號//int->stringstring str=不銹鋼結構()如果(!ss.很好()){//發(fā)生錯誤}