C++中stringstream的⽤法和实例
之前在leetcode中进⾏string和int的转化时使⽤过istringstream,现在⼤致总结⼀下⽤法和测试⽤例。
介绍:C++引⼊了ostringstream、istringstream、stringstream这三个类,要使⽤他们创建对象就必须包含sstream.h头⽂件。istringstream类⽤于执⾏C++风格的串流的输⼊操作。
ostringstream类⽤于执⾏C风格的串流的输出操作。
stringstream类同时可以⽀持C风格的串流的输⼊输出操作。
下图详细描述了⼏种类之间的继承关系:
istringstream是由⼀个string对象构造⽽来,从⼀个string对象读取字符。
ostringstream同样是有⼀个string对象构造⽽来,向⼀个string对象插⼊字符。
stringstream则是⽤于C++风格的字符串的输⼊输出的。
代码测试:
#include<iostream>
#include <sstream>
using namespace std;<pre name="code" class="cpp">int main(){
string test = "-123 9.87 welcome to, 989, test!";
istringstream iss;//istringstream提供读 string 的功能
iss.str(test);//将 string 类型的 test 复制给 iss,返回 void
string s;
cout << "按照空格读取字符串:" << endl;
while (iss >> s){
cout << s << endl;//按空格读取string
}
cout << "*********************" << endl;
istringstream strm(test);
//创建存储 test 的副本的 stringstream 对象
int i;
float f;
char c;
char buff[1024];
strm >> i;
cout <<"读取int类型:"<< i << endl;
strm >> f;
cout <<"读取float类型:"<<f << endl;
strm >> c;
cout <<"读取char类型:"<< c << endl;
strm >> buff;
cout <<"读取buffer类型:"<< buff << endl;
strm.ignore(100, ',');
int j;
strm >> j;
c++中string的用法
cout <<"忽略‘,'读取int类型:"<< j << endl;
system("pause");
return 0;
}
输出:
总结:
1)在istringstream类中,构造字符串流时,空格会成为字符串参数的内部分界;
2)istringstream类可以⽤作string与各种类型的转换途径
3)ignore函数参数:需要读取字符串的最⼤长度,需要忽略的字符
代码测试:
int main(){
ostringstream out;
out.put('t');//插⼊字符
out.put('e');
out << "st";
string res = out.str();//提取字符串;
cout << res << endl;
system("pause");
return 0;
}
输出:test字符串;
注:如果⼀开始初始化ostringstream,例如ostringstream out("test"),那么之后put或者<<;时的字符串会覆盖原来的字符,超过的部分在原始基础上增加。
stringstream同理,三类都可以⽤来字符串和不同类型转换。
以上就是⼩编为⼤家带来的C++中stringstream的⽤法和实例全部内容了,希望⼤家多多⽀持~
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论