c++標(biāo)準(zhǔn)庫<sstream>

<sstream>庫

  • <sstream>庫定義了三種類:istringstream、ostringstream和stringstream,分別用來進(jìn)行流的輸入、輸出和輸入輸出操作。
  • 基于該類的轉(zhuǎn)換擁有類型安全和不會溢出的特性。還可以通過重載來支持自定義類型間的轉(zhuǎn)換。
  • 如果你打算在多次轉(zhuǎn)換中使用同一個流對象,記住再每次轉(zhuǎn)換前要使用clear()方法;
<1>ostringstream

int、long、double等類型轉(zhuǎn)換成字符串string類型。

template<class T>
void to_string(string & result,const T& t){
    ostringstream oss;//創(chuàng)建一個流
    oss<<t;//把值傳遞如流中
    result=oss.str();//獲取轉(zhuǎn)換后的字符轉(zhuǎn)并將其寫入result
}
<2>stringstream

任意類型之間的轉(zhuǎn)換。將in_value值轉(zhuǎn)換成out_type類型

template<class out_type,class in_value>
out_type convert(const in_value & t){
    stringstream stream;
    stream<<t;//向流中傳值
    out_type result;//這里存儲轉(zhuǎn)換結(jié)果
    stream>>result;//向result中寫入值
    return result;
}
<3>istringstream

字符串轉(zhuǎn)基本類型

istringstream iss;
iss.str("123");//或者直接構(gòu)造  istringstream iss2("123 456");
int n;
iss >> n;

>>以空格為界。會把輸入的流用空格分隔開。

   while(iss2>>str){//每次讀取一個單詞(以空格為界),存入str中 
        cout << str<<","; 
   }//123 456
<4>實(shí)例
  • 基本數(shù)據(jù)類型轉(zhuǎn)換。int轉(zhuǎn)string
    int n = 100;
    string str;
    //使用stringstream
    stringstream ss;
    ss << n;
    ss >> str;
    cout << str << endl;
    //使用ostringstream
    ostringstream oss;
    oss << n;
    str = oss.str();
    cout << str << endl;
  • char *的轉(zhuǎn)換
std::stringstream stream;
char result[8] ;
stream << 8888; //向stream中插入8888
stream >> result; //抽取stream中的值到result
std::cout << result << std::endl; // 屏幕顯示 "8888"
  • 多次轉(zhuǎn)換
    多次轉(zhuǎn)換時必須調(diào)用stringstream的成員函數(shù)clear().
std::stringstream stream;
int first, second;
stream<< "456"; //插入字符串
stream >> first; //轉(zhuǎn)換成int
std::cout << first << std::endl;
stream.clear(); //在進(jìn)行多次轉(zhuǎn)換前,必須清除stream
stream << true; //插入bool值
stream >> second; //提取出int
std::cout << second << std::endl;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容