国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C++ > 正文

C++中stringstream的用法和實(shí)例

2020-01-26 14:21:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

之前在leetcode中進(jìn)行string和int的轉(zhuǎn)化時(shí)使用過(guò)istringstream,現(xiàn)在大致總結(jié)一下用法和測(cè)試用例。

介紹:C++引入了ostringstream、istringstream、stringstream這三個(gè)類,要使用他們創(chuàng)建對(duì)象就必須包含sstream.h頭文件。

istringstream類用于執(zhí)行C++風(fēng)格的串流的輸入操作。

ostringstream類用于執(zhí)行C風(fēng)格的串流的輸出操作。

stringstream類同時(shí)可以支持C風(fēng)格的串流的輸入輸出操作。

下圖詳細(xì)描述了幾種類之間的繼承關(guān)系:

istringstream是由一個(gè)string對(duì)象構(gòu)造而來(lái),從一個(gè)string對(duì)象讀取字符。

ostringstream同樣是有一個(gè)string對(duì)象構(gòu)造而來(lái),向一個(gè)string對(duì)象插入字符。

stringstream則是用于C++風(fēng)格的字符串的輸入輸出的。

代碼測(cè)試:

#include<iostream> #include <sstream>  using namespace std;<pre name="code" class="cpp">int main(){   string test = "-123 9.87 welcome to, 989, test!";   istringstream iss;//istringstream提供讀 string 的功能   iss.str(test);//將 string 類型的 test 復(fù)制給 iss,返回 void    string s;   cout << "按照空格讀取字符串:" << endl;   while (iss >> s){     cout << s << endl;//按空格讀取string   }   cout << "*********************" << endl;    istringstream strm(test);    //創(chuàng)建存儲(chǔ) test 的副本的 stringstream 對(duì)象   int i;   float f;   char c;   char buff[1024];    strm >> i;   cout <<"讀取int類型:"<< i << endl;   strm >> f;   cout <<"讀取float類型:"<<f << endl;   strm >> c;   cout <<"讀取char類型:"<< c << endl;   strm >> buff;   cout <<"讀取buffer類型:"<< buff << endl;   strm.ignore(100, ',');   int j;   strm >> j;   cout <<"忽略‘,'讀取int類型:"<< j << endl;    system("pause");   return 0; } 

輸出:

總結(jié):

1)在istringstream類中,構(gòu)造字符串流時(shí),空格會(huì)成為字符串參數(shù)的內(nèi)部分界;

2)istringstream類可以用作string與各種類型的轉(zhuǎn)換途徑

3)ignore函數(shù)參數(shù):需要讀取字符串的最大長(zhǎng)度,需要忽略的字符

代碼測(cè)試:

int main(){   ostringstream out;   out.put('t');//插入字符   out.put('e');   out << "st";   string res = out.str();//提取字符串;   cout << res << endl;   system("pause");   return 0; } 

輸出:test字符串;

注:如果一開(kāi)始初始化ostringstream,例如ostringstream out("test"),那么之后put或者<<時(shí)的字符串會(huì)覆蓋原來(lái)的字符,超過(guò)的部分在原始基礎(chǔ)上增加。

stringstream同理,三類都可以用來(lái)字符串和不同類型轉(zhuǎn)換。

以上就是小編為大家?guī)?lái)的C++中stringstream的用法和實(shí)例全部?jī)?nèi)容了,希望大家多多支持武林網(wǎng)~

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 泰州市| 宜兴市| 城固县| 内乡县| 贞丰县| 沧州市| 佛山市| 白银市| 屏东市| 定南县| 惠水县| 淳化县| 恭城| 什邡市| 莱芜市| 万安县| 紫云| 松阳县| 自治县| 邵东县| 崇信县| 封丘县| 二连浩特市| 中方县| 平昌县| 桐柏县| 永城市| 界首市| 郑州市| 乐陵市| 丹江口市| 毕节市| 淮滨县| 二手房| 会东县| 乌恰县| 吕梁市| 宝山区| 灌南县| 罗山县| 灌南县|