介绍
类似C++当中的文件流操作,C++的字符串流同样有有三种类型。
分别是
- istringstream 从string中读取数据
- ostringstream 向string中写入数据
- stringstream 即可以读又可以写
以上三种类型包含着同文件< sstream >当中
stringstream特有操作 | |
---|---|
sstream ss; | ss是一个未被绑定的stringstream对象。sstream是sstream中定义的一个类型。 |
sstream ss(s); | ss保存string s的一个拷贝,构造函数是explicit的 |
ss.str() | 返回strm所保存的string的拷贝 |
ss.str(s) | 将s拷贝到ss当中,返回void |
这里stringstream的作用介绍两种,一种是用getline读取一行数据,输入回车读取下一行,把读取到的数据按照空格分开。另外一个是把读入的字符串或者读入的整数之间进行转换。
一个简单的代码例子:
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
stringstream ss;
string s;
getline(cin,s);
int a=0,b=0,c=0;
string str;
ss<<s;//把字符串塞进ss当中
ss>>a>>b>>c>>str;//读出来
cout<<a<<" "<<b<<" "<<c<<" "<<a+b+c<<" "<<str<<endl;
str="123";
ss.clear();
ss<<str;
ss>>a;
cout<<a<<endl;
return 0;
}