官方網(wǎng)站建設(shè)專家磐石網(wǎng)絡(luò)百度網(wǎng)盤登錄入口 網(wǎng)頁
C++引入了ostringstream、istringstream、stringstream這三個類,要使用他們創(chuàng)建對象就必須包含<sstream>這個頭文件。
在C++中標(biāo)準(zhǔn)庫提供三個類用于文件操作,統(tǒng)稱為文件流類:
- ifstream:專用于從文件中讀取數(shù)據(jù);
- ofstream:專用于向文件中寫入數(shù)據(jù);
- fstream:既可用于從文件中讀取數(shù)據(jù),又可用于向文件中寫入數(shù)據(jù)
C++程序把輸入和輸出看作字符流,輸入時,程序從輸入流中提取字節(jié),輸出時,程序把字節(jié)插入到輸出流中。對于輸入輸出流既可以來自標(biāo)準(zhǔn)輸入輸出設(shè)備,也可以來自文件,甚至可以來自string對象,三者分別屬于iostream family、fstream family、sstream family。
對于iostream類,就是我們通常所說的標(biāo)準(zhǔn)流,它把程序跟標(biāo)準(zhǔn)I/O連接在一起,輸入來自鍵盤,輸出送往監(jiān)視器。
對于fstream類,它把程序跟文件關(guān)聯(lián)起來,輸入來自文件,輸出到文件。
對于sstream類,它是提供程序和string對象之間的I/O,可通過ostringstream sout和istringstream sin來聲明兩個對象,分別對應(yīng)輸出流和輸入流,這給編程帶來極大的方便,例如可以從文本文件中讀取一批數(shù)字字符到string對象中,再把string對象作為程序的輸入流,既可把從文件中讀取來的數(shù)字字符單個進行讀取,從而進行處理。
默認通過空格(或回車)來分割字符串輸入,即區(qū)分不同的字符串輸入。?
#include<vector>
#include<iostream>
#include<map>
#include<fstream>
#include<sstream>using namespace std;
/*以|為分隔符,讀取字符串*/
vector<string> getBugs(string words)
{vector<string> results;istringstream ss(words);while (!ss.eof()){string word;getline(ss, word, '|');results.emplace_back(word);}return results;
}int main()
{vector<string> ss = getBugs("fdfd|2w3|hgggfer");return 0;
}