C++中stringstream的用法和實例。本站提示廣大學習愛好者:(C++中stringstream的用法和實例)文章只能為提供參考,不一定能成為您想要的結果。以下是C++中stringstream的用法和實例正文
之前在leetcode中停止string和int的轉化時運用過istringstream,如今大致總結一下用法和測試用例。
引見:C++引入了ostringstream、istringstream、stringstream這三個類,要運用他們創立對象就必需包括sstream.h頭文件。
istringstream類用於執行C++作風的串流的輸出操作。
ostringstream類用於執行C作風的串流的輸入操作。
stringstream類同時可以支持C作風的串流的輸出輸入操作。
下圖詳細描繪了幾品種之間的承繼關系:
istringstream是由一個string對象結構而來,從一個string對象讀取字符。
ostringstream異樣是有一個string對象結構而來,向一個string對象拔出字符。
stringstream則是用於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 復制給 iss,前往 void string s; cout << "依照空格讀取字符串:" << endl; while (iss >> s){ cout << s << endl;//按空格讀取string } cout << "*********************" << endl; istringstream strm(test); //創立存儲 test 的正本的 stringstream 對象 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; }
輸入:
總結:
1)在istringstream類中,結構字符串流時,空格會成為字符串參數的外部分界;
2)istringstream類可以用作string與各品種型的轉換途徑
3)ignore函數參數:需求讀取字符串的最大長度,需求疏忽的字符
代碼測試:
int main(){ ostringstream out; out.put('t');//拔出字符 out.put('e'); out << "st"; string res = out.str();//提取字符串; cout << res << endl; system("pause"); return 0; }
輸入:test字符串;
注:假如一開端初始化ostringstream,例如ostringstream out("test"),那麼之後put或許<<時的字符串會掩蓋原來的字符,超越的局部在原始根底上添加。
stringstream同理,三類都可以用來字符串和不同類型轉換。
以上就是為大家帶來的C++中stringstream的用法和實例全部內容了,希望大家多多支持~