C++ sstream的使用
C++ sstream的使用
- 基本操作
- 实用函数
- 参考链接
sstream库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。[1]
基本操作
1、操作前后: 操作前将string压入sstream,操作后压出
stringstream stream; //声明一个stringstream变量
string str;
...//具体操作
str = stream.str(); //从steam中提取刚插入的整型数 ,等效于stream >> str;
2、具体操作
a\可跳过空格
std::stringstream ss;
ss << 100 << ' ' << 200;
int foo,bar;
ss >> foo >> bar;
//rslt: foo==100,bar==200
b\尽量识别,不可识别时则为0
ss << 100 << ',' << 200;
int foo,bar;
ss >> foo >> bar;
//rslt: foo=100,bar=200
实用函数
1、myto_string()
STL中的to_string()不能把cstring转string,而下面的函数可以
template<class T>
string myto_string(const T& t)
{ostringstream oss;//创建一个流oss<<t;//把值传递如流中return oss.str();//获取转换后的字符转并将其写入result
}
2、stringsteam的方法str()
该方法使用后,输出流指针总是指向流的最前面
a、不恰当使用
std::stringstream ss;
string str1("123456");
ss.str(str1);
ss<<"hello";
string str2;
ss>> str2;
cout<<str1<<endl;//123456
cout<<str2<<endl;//hello6
b、正确使用
std::stringstream ss;
string str1("123456");
ss.str(str1);
ss.seekp(0,ios::end);
ss<<"hello";
cout<<ss.str()<<endl;//123456hello
cout<<str1<<endl;//123456
3、大多数类型可以用的转换[3]:
template<class out_type, class in_value>
out_type myconvert(const in_value & t)
{stringstream stream;stream<<t;//向流中传值out_type result;//这里存储转换结果stream>>result;//向result中写入值return result;
}string str1("123456");str1 = myconvert<string,int>(1234);
4、树的序列化和你序列化:
由于代码比较长,就不复制,了请直接到链接 3 看。我想,这段代码没必要考虑效率,它的优点在于可视化。如果注重效率的话,就应该把数据存为二进制流了。
参考链接
[1] C++ stringstream的用法|c++ 字符串流 sstream(常用于格式转换)
[2]std::stringstream::stringstream
[3]c++ stringstream(老好用了)
[4]C++文件中的移动文件指针的函数怎么用
C++ sstream的使用相关推荐
- C++标准库中sstream和strstream的区别
在C++有两种字符串流,一种在sstream中定义, 另一种在strstream中定义. 它们实现的东西基本一样. strstream里包含 class strstreambuf; class ist ...
- fstream,sstream,使用(习题8.16)
2019独角兽企业重金招聘Python工程师标准>>> 读出cin中残存的回车换行符应使用:getline(cin,s); #include<iostream> #inc ...
- C++中sstream的简单使用
读入一行,按空格分割: #include<iostream> #include<algorithm> #include<sstream> #include<s ...
- 18行代码AC_排序 HDU - 1106(sstream简单解法)
励志用少的代码做高效表达. Problem describe 输入一行数字,如果我们把这行数字中的'5'都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以'0'开头,这些头部的'0'应 ...
- 神奇的sstream头文件(整型与字符串自由转换)
疫情当前,"串门就是互相残杀,聚会就是自寻短见",所以,让我们一起快乐的敲代码吧! 这次分享的知识是:如何让整型.实型.字符型自由转换. 直接上代码: //#include< ...
- sstream应用举例
题目描述 把2019分解成3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法? 注意交换3个整数的顺序被视为同一种方法,例如1000+1001+18 和1001 ...
- 【HDU - 2072 】单词数(字符串读入技巧,sstream大法,水题,字符串读入格式)
题干: lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题. Input 有多组数据,每组一行 ...
- sstream和strstream以及fstream
在C++有两种字符串流,也称为数组I/O流,一种在sstream中定义,另一种在strstream中定义. 它们实现的东西基本一样. strstream里包含 class strstreambuf; ...
- SRM 207 Div II Level Two: RegularSeason,字符串操作(sstream),多关键字排序(操作符重载)...
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=2866&rd=5853 主要是要对字符串的操作要熟悉,熟 ...
- sstream类的详解
sstream类的详解 sstream类详细介绍 C++引入了ostringstream.istringstream.stringstream这三个类,要使用他们创建对象 ...
最新文章
- 【转】C语言的位运算的优势
- 前端技术分享:Nginx负载均衡视频,基础的实战应用
- knockout checkbox 全选
- Win7 连接局域网共享之后 提示错误代码:0x800704b3(实测可用)
- 利用matlab自带函数快速提取二值图像的图像边缘 bwperim函数
- 游戏筑基开发之文件操作(C语言)
- linux下安装inode客户端
- 反爬虫策略的应对方法汇总
- 驱动精灵等软件卸载后剩余文件的删除
- VB调用摄像头录像,拍照,保存
- HTML期末学生作业~html+css+javascript仿猫眼电影在线网站[毕业设计]
- Date DateFormat SimpleDateFormat Calendar Joda-Time
- 天翼云云硬盘的磁盘模式及共享盘
- 计算机存储容量用K还是KB,计算机中容量单位B、KB、MB、GB和TB的关系
- Android——新大陆云平台配置(2)
- 2022年淘宝618活动时间和天猫618有什么优惠活动
- Python 为什么不支持 switch 语句?
- 警惕 “格机软件” 格式化手机全字库..不要轻易给不明觉厉的软件给root权限
- CAD版本转换怎么转?
- kicad 排针_xconch: 神奇海螺,是时候该结束开发板裸奔的时代了。采用堆叠设计,拥有漂亮外观及超强扩展性。一款完全开源的结构及通用硬件扩展平台,旨在大家能更欢乐的DIY。...