日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ stringstream介绍,使用方法与例子

發布時間:2023/12/10 c/c++ 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ stringstream介绍,使用方法与例子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++引入了ostringstream、istringstream、stringstream這三個類,要使用他們創建對象就必須包含sstream.h頭文件。
  istringstream類用于執行C++風格的串流的輸入操作。
ostringstream類用于執行C風格的串流的輸出操作。
strstream類同時可以支持C風格的串流的輸入輸出操作。
   istringstream類是從istream和stringstreambase派生而來,ostringstream是從ostream和 stringstreambase派生而來, stringstream則是從iostream類和stringstreambase派生而來。
  他們的繼承關系如下圖所示:

 istringstream是由一個string對象構造而來,istringstream類從一個string對象讀取字符。
istringstream的構造函數原形如下:
istringstream::istringstream(string str);

#include <iostream> #include <string> #include <sstream> using namespace std; int main() { istringstream istr; istr.str("1 56.7"); //上述兩個過程可以簡單寫成 istringstream istr("1 56.7"); cout << istr.str()<<endl; int a; float b; istr>>a; cout<<a<<endl; istr>>b; cout<<b<<endl; system("pause"); }

 上例中,構造字符串流的時候,空格會成為字符串參數的內部分界,例子中對a,b對象的輸入”賦值”操作證明了這一點,字符串的空格成為了整型數據與浮點型數據的分解點,利用分界獲取的方法我們事實上完成了字符串到整型對象與浮點型對象的拆分轉換過程。
  str()成員函數的使用可以讓istringstream對象返回一個string字符串(例如本例中的輸出操作(cout<

#include <iostream> #include <string> #include <sstream> using namespace std; int main() { ostringstream ostr; ostr.str("abc");//如果構造的時候設置了字符串參數,那么增長操作的時候不會從結尾開始增加,而是修改原有數據,超出的部分增長 ostr.put('d'); ostr.put('e'); ostr<<"fg"; string gstr = ostr.str(); cout<<gstr; }

 在上例代碼中,我們通過put()或者左移操作符可以不斷向ostr**插入單個字符或者是字符串,通過str()函數返回增長過后的完整字符串數據,但值 得注意的一點是,當構造的時候對象內已經存在字符串數據的時候,那么增長操作的時候不會從結尾開始增加**,而是修改原有數據,超出的部分增長。
 所以上面輸出: defg

   對于stringstream了來說,不用我多說,大家也已經知道它是用于C++風格的字符串的輸入輸出的。
stringstream的構造函數原形如下:
  stringstream::stringstream(string str);
  

#include <iostream> #include <string> #include <sstream> using namespace std; int main() { stringstream ostr("ccc"); ostr.put('d'); ostr.put('e'); ostr<<"fg"; string gstr = ostr.str(); cout<<gstr<<endl; char a; ostr>>a; cout<<a;system("pause"); }

 除此而外,stringstream類的對象我們還常用它進行string與各種內置類型數據之間的轉換。
 

#include <iostream> #include <string> #include <sstream> using namespace std; int main() { stringstream sstr; //--------int轉string----------- int a=100; string str; sstr<<a; sstr>>str; cout<<str<<endl; //--------string轉char[]-------- sstr.clear();//如果你想通過使用同一stringstream對象實現多種類型的轉換,請注意在每一次轉換之后都必須調用clear()成員函數。 string name = "colinguan"; char cname[200]; sstr<<name; sstr>>cname; cout<<cname; system("pause"); }

最后一個太給力了,極大地方便了int與string,string與char*的轉換。在string中,c_str()函數返回的是const char*,不是char*。
還可以使用ostringstream來完成以上轉換,代碼:

#include <sstream> #include <iostream> #include <string>using namespace std; int main(void) {int i=1011;string c;ostringstream oss;oss<<i;c=oss.str();cout<<c<<endl;return 0; } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的C++ stringstream介绍,使用方法与例子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。