istringstream,ostringstream和stringstream
使用istringstream,ostringstream和stringstream这三个类,需要包含sstream.h
头文件。
其中istringstream从string中读取数据,ostringstream向string写入数据,而stringstream可以从string中读取数据,也可以写入数据。
其中,此三者都有一个成员函数str(),可以将设置值,也可以返回值。
1.istringstream类
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
istringstream iss;
iss.str("hi iss");
string str;
while(iss>>str)
cout<<str<<endl;
istringstream iss2("hi iss2");
while (iss2>>str) {
cout<<str<<endl;
}
return 0;
}
输出结果是:
hi
iss
hi
iss2
2.ostringstream
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
ostringstream oss;
istringstream iss;
iss.str("hi iss");
string str;
while(iss>>str)
oss<<str<<endl;
istringstream iss2("hi iss2");
while (iss2>>str) {
oss<<str<<endl;
}
cout<<oss.str();
return 0;
}
输出结果是:
hi
iss
hi
iss2
3.stringstream
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
stringstream sstr;
int number = 999;
string strNumber;
sstr<<number;
sstr>>strNumber;
cout<<"strNumber:"<<strNumber<<endl;
sstr.clear();
string str("hi,xiaoming");
char cstr[30];
sstr<<str;
sstr>>cstr;
cout<<cstr<<endl;
sstr.clear();
char numbers[30]{'\0'};
sstr<<243;
sstr>>numbers;
cout<<numbers<<endl;
return 0;
}
输出结果是:
strNumber:999
hi,xiaoming
243