C++ String流
1.概要
需要添加:#include<sstream>,sstream头文件定义了三个类型来支持内存IO:
istringstream //从string读取数据。
ostringstream //向string写入数据。
stringstream //既可以从string读取数据也可以向string写数据。
简要介绍stringstream的操作:
string s="hello";
stringstream ss(s);//explicit construct
string s1=ss.str();//返回ss中保存的string拷贝
stringstream ss1;
ss1.str(s1);//将string s1拷贝到streamstream对象ss1中
注:解析对象的时候是以空格和回车为分隔符。
2.String流的简单示例
a) 使用stringstream进行int到string 和 string到 int 的转换
stringstream ss;
string s;
int i = 1314;
int j =0;
//int to string
ss << i;
ss >> s;
s = ss.str();
cout << s << endl;
//string to int
ss.clear();//clear
ss.str(s);//explicit construct
ss>>j;
cout << j << endl;
b) 将子串按单词分割
此处用到string流以空格为分隔符的特性
可以实现将按空格把string串分割,并按单词保存在vector<string>中
string line;
vector<string>words;
string word;
getline(cin,line);//input
stringstream ss(line);//explicit construct
while(ss>>word)
words.push_back(word);//add record
vector<string>::iterator it = words.begin();
while(it!=words.end())//out put
cout << *it++<<endl;