栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ stringstream的使用

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ stringstream的使用

  • 要使用stringstream,必须包含头文件:
#include 
  • 通过重载的<<和>>运算符可以将文件流中的数据输出到C++字符串中,它们之间的媒介是缓冲区streambuf 
  • stringstream通常用来做数据转换的,即可向流对象中写,又可读

1.将其他类型的变量转为string类型

一般我们都用str=to_string(x)方法来进行转换,通过stringstream中间做一个转换也可以做到。

stringstream对象(ss)常使用的两个方法

ss.clear():清除流的状态标志,但不会改变流中的内容。

ss.str(""):清空流中的数据,相当于无论之前流中的数据是什么,使用str("")之后,流数据为空,并且将状态符固定。

ss.str() 返回stringsteam中管理的全部string内容

***注意:

对同一个stringstream对象重复赋值时,就需要先对流使用clear()函数清空流的状态,此时流占用的内存没有改变,会一直增加(stringstream不主动释放内存),若想改变内存(一般是清除内存,减少内存消耗),需要再配合使用str("")清空stringstream的缓存。

//test1
#include 
#include 
using namespace std;

int main(){
	double x=6.6666;
	stringstream ss;
	string a;
	ss<>a;
	
	cout<>a;
	
	cout<

2.通过stringstream对一行字符串指定字符进行分割

这里顺便提一下getline()方法和cin.getline()方法

当我们要读取的字符串包含空格时,常用getline函数进行读取,其函数参数有三个。

getline(istream, string, char)

istream是进行读入操作的输入流
string 存储读入的串的内容
char 终止符,遇到该终止符结束输入。省略时,默认读取一行换行符前面的所有字符(包括换行符,但换行符虽读却不存储,也就是说存储的串中不包含换行符)。

cin.getline也可接收三个参数,一个是字符数组首地址,第二个是接受字符个数,第三个是终止符。

例题: 

 输入:多个测试用例,每个测试用例一行, 数据之间通过','隔开。

54,32,78
8,4,3,6,11,8,1
1
41,20,2

 输出

32,54,78
1,3,4,6,8,8,11
1
20,22,41

代码

#include 
#include 
#include 
using namespace std;

const int N=1000;
int a[N]; 
int main(){
	int sum,cnt;
	stringstream ss;
	string row,num;
	while(getline(cin,row)){
		sum=0;
		cnt=0;
		
		ss.clear();
		ss.str("");
		ss< 

 

 


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1008543.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号