istringstream在
#include<sstream>
头文件中。
个人理解用于切割字符串。
比如像。
Cat and Dog
这一行字符串。会进行空格之间的分割。
实践
#include<iostream>
#include<sstream>
using namespace std;
int main(int argc, char** argv){
ios::sync_with_stdio(false);
string str = "Cat and Dog", ans;
istringstream is(str);
while(is >> ans){
cout << ans << endl;
}
return 0;
}
这个代码的输出结果是
Cat
and
Dog
那么当我输入一行的时候怎么办呢?
比如
Cat and Dog
for you
for me
像这样的三行字符串,当我写程序设计题目的时候应该怎么用到istringstream呢?这时候我们如果要一个一个读入的话,可以直接用
cin >> str;
读个七次。
但是我们也可以
getline(cin, str);
去读一行串。然后再用istringstream进行分割。
实践
#include<iostream>
#include<sstream>
using namespace std;
int main(int argc, char** argv){
ios::sync_with_stdio(false);
string str, ans;
while(getline(cin, str)){
istringstream is(str);
while(is >> ans){
cout << ans << " ";
}
cout << endl;
}
return 0;
}
输出结果是
Cat and Dog
for you
for me
至此。