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的用法和實例全部內容了,希望大家多多支持~