陕西省住房和城乡建设管理委员会网站长沙seo网络公司
C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含<sstream>这个头文件。
在C++中标准库提供三个类用于文件操作,统称为文件流类:
- ifstream:专用于从文件中读取数据;
- ofstream:专用于向文件中写入数据;
- fstream:既可用于从文件中读取数据,又可用于向文件中写入数据
C++程序把输入和输出看作字符流,输入时,程序从输入流中提取字节,输出时,程序把字节插入到输出流中。对于输入输出流既可以来自标准输入输出设备,也可以来自文件,甚至可以来自string对象,三者分别属于iostream family、fstream family、sstream family。
对于iostream类,就是我们通常所说的标准流,它把程序跟标准I/O连接在一起,输入来自键盘,输出送往监视器。
对于fstream类,它把程序跟文件关联起来,输入来自文件,输出到文件。
对于sstream类,它是提供程序和string对象之间的I/O,可通过ostringstream sout和istringstream sin来声明两个对象,分别对应输出流和输入流,这给编程带来极大的方便,例如可以从文本文件中读取一批数字字符到string对象中,再把string对象作为程序的输入流,既可把从文件中读取来的数字字符单个进行读取,从而进行处理。
默认通过空格(或回车)来分割字符串输入,即区分不同的字符串输入。
#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;
}