欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2016年12月21日 10:10:36   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇C++中stringstream的用法和實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

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

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

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

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

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

下圖詳細(xì)描述了幾種類(lèi)之間的繼承關(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 類(lèi)型的 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類(lèi)型:"<< i << endl; 
  strm >> f; 
  cout <<"讀取float類(lèi)型:"<<f << endl; 
  strm >> c; 
  cout <<"讀取char類(lèi)型:"<< c << endl; 
  strm >> buff; 
  cout <<"讀取buffer類(lèi)型:"<< buff << endl; 
  strm.ignore(100, ','); 
  int j; 
  strm >> j; 
  cout <<"忽略‘,'讀取int類(lèi)型:"<< j << endl; 
 
  system("pause"); 
  return 0; 
} 

輸出:

總結(jié):

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

2)istringstream類(lèi)可以用作string與各種類(lèi)型的轉(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)都可以用來(lái)字符串和不同類(lèi)型轉(zhuǎn)換。

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

相關(guān)文章

  • C語(yǔ)言算法打卡回文串驗(yàn)證算法題解

    C語(yǔ)言算法打卡回文串驗(yàn)證算法題解

    這篇文章主要為大家介紹了C語(yǔ)言算法打卡萬(wàn)人千提的leetcode回文串的驗(yàn)證算法題解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • C++實(shí)現(xiàn)井字棋游戲

    C++實(shí)現(xiàn)井字棋游戲

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)井字棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之二叉樹(shù)的非遞歸后序遍歷算法

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之二叉樹(shù)的非遞歸后序遍歷算法

    這篇文章主要介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之二叉樹(shù)的非遞歸后序遍歷算法的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • C語(yǔ)言中pthread_exit()函數(shù)實(shí)現(xiàn)終止線(xiàn)程

    C語(yǔ)言中pthread_exit()函數(shù)實(shí)現(xiàn)終止線(xiàn)程

    本文主要介紹了C語(yǔ)言中pthread_exit()函數(shù)實(shí)現(xiàn)終止線(xiàn)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • C語(yǔ)言計(jì)算1/1+1/2+1/3+…+1/n的問(wèn)題

    C語(yǔ)言計(jì)算1/1+1/2+1/3+…+1/n的問(wèn)題

    這篇文章主要介紹了C語(yǔ)言計(jì)算1/1+1/2+1/3+…+1/n的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 簡(jiǎn)單的漢諾塔問(wèn)題解法代碼

    簡(jiǎn)單的漢諾塔問(wèn)題解法代碼

    漢諾塔本是C語(yǔ)言開(kāi)門(mén)就學(xué)的東西,簡(jiǎn)單的漢諾塔問(wèn)題解法代碼
    2013-03-03
  • c/c++內(nèi)存分配大小實(shí)例講解

    c/c++內(nèi)存分配大小實(shí)例講解

    在本篇文章里小編給大家整理了一篇關(guān)于c/c++內(nèi)存分配大小實(shí)例講解內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)參考下。
    2021-11-11
  • C++淺析內(nèi)存分區(qū)模型概念與示例

    C++淺析內(nèi)存分區(qū)模型概念與示例

    在了解內(nèi)存分區(qū)之前,我們先來(lái)聊一聊為什么要進(jìn)行內(nèi)存分區(qū)。在進(jìn)行了內(nèi)存分區(qū)之后,在不同的區(qū)域存放的數(shù)據(jù),會(huì)有不同的生命周期,從而會(huì)讓程序員的編程變得更加靈活
    2022-09-09
  • 深入理解char *a與char a[]的區(qū)別

    深入理解char *a與char a[]的區(qū)別

    很多人可能或多或少知道char *a與char a[]的一些區(qū)別,但如果詳細(xì)的說(shuō)出來(lái)卻不知如何說(shuō)去,下面這篇文章就給大家詳細(xì)介紹了關(guān)于C語(yǔ)言中char *a與char a[]的區(qū)別,有需要的朋友們可以參考借鑒,下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-12-12
  • 詳解Qt如何加載libxl庫(kù)

    詳解Qt如何加載libxl庫(kù)

    這篇文章主要介紹了詳解Qt如何加載libxl庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評(píng)論