stringstream的基本用法

stringstream是字符串流。它将流与存储在内存中的string对象绑定起来。

在多种数据类型之间实现自动格式化。

1.stringstream对象的使用

#include<sstream>

#include<iostream>

using namespace std;

int main()

{

string line,word;

while(getline(cin,line))

{

stringstream stream(line);

cout<<stream.str()<<endl;

while(stream>>word){cout<<word<<endl;}

}

return 0;

}

输入:shanghai no1 school 1989

输出:shanghi no1 school 1989

   shanghai

    no1

    school

    1989

2.stringstream提供的转换和格式化

程序:

#include<sstream>

#include<iostream>

using namespace std;

int main()

{

int val1 = 512,val2 =1024;

stringstream ss;

ss<<"val1: "<<val1<<endl //“val1: "此处有空格,字符串流是通过空格判断一个字符串的结束

     <<"val2: "<<val2<<endl;

cout<<ss.str();

string dump;

int a,b;

ss>>dump>>a

     >>dump>>b;

cout<<a<<" "<<b<<endl;

return 0;

}

输出为:val1: 512

    val2: 1024

    512 1024

第一处黑体字部分:将int类型读入ss,变为string类型

第二处黑体字部分:提取512,1024保存为int类型。当然,如果a,b声明为string类型,那么这两个字面值常量相应保存为string类型

3.其他注意

stringstream不会主动释放内存(或许是为了提高效率),但如果要在程序中用同一个流,反复读写大量的数据,将会造成大量的内存消 耗,因些这时候,需要适时地清除一下缓冲 (用 stream.str("") )

#include <cstdlib>

#include<iostream>

#include<sstream>

using namespace std;

int main()

{

stringstream ss;

string s;

ss<<"shanghai no1 school";

ss>>s;

cout<<"size of stream = "<<ss.str().length()<<endl;

cout<<"s: "<<s<<endl;

ss.str("");

cout<<"size of stream = "<<ss.str().length()<<endl;

}

输出:

size of stream = 19

s: shanghai

size of stream = 0

stringstream的用法的更多相关文章

  1. C++ stringstream的用法

    Created at    stringstream的用法 使用stringstream对象简化类型转换 C++标准库中的<sstream>提供了比ANSI C的<stdio.h&g ...

  2. stringstream的用法【转】

    [本文来自]http://www.builder.com.cn/2003/0304/83250.shtmlhttp://www.cppblog.com/alantop/archive/2007/07/ ...

  3. [转]stringstream的用法

    使用stringstream对象简化类型转换C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性.类型安全和可扩展性.在本文中, ...

  4. HDU 4329 MAP(stringstream的用法)

    这个题目有点绕,但是按着他的意思写不难模拟出来.本来是一场学弟们的训练赛,我这个学长在赛场上却WA了四次都没过,三条黑线就一直在我的脑袋上挂着... 赛后开始找原因,后来发现题目看错了,1/R中的R是 ...

  5. 转:stringstream的用法

    [本文来自]http://www.builder.com.cn/2003/0304/83250.shtmlhttp://www.cppblog.com/alantop/archive/2007/07/ ...

  6. sscanf、sprintf、stringstream常见用法

    转载自:https://blog.csdn.net/jllongbell/article/details/79092891 前言: 以前没有接触过stringstream这个类的时候,常用的字符串和数 ...

  7. C++(一)— stringstream的用法

    输入输出的头文件 <iostream>  string流的头文件 <sstream>  文件流的头文件   <fstream> 1.利用输入输出做数据转换 stri ...

  8. stringstream常见用法介绍

    1 概述 <sstream> 定义了三个类:istringstream.ostringstream 和 stringstream,分别用来进行流的输入.输出和输入输出操作.本文以 stri ...

  9. c++之stringstream类的用法

    简介: 今天利用opecv提取每一帧图片并保存到本地指定目录下的时,对于保存的每一帧的图片希望第几帧体现在图片名中, 这里便用到了stringstream类的将数字转化为字符串这一功能 C++ Str ...

随机推荐

  1. c++ vector用法和迭代器

    1.在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. (1)头文件#include<vector>. (2)创建vector对象,vector<int> ...

  2. 文科妹学 GitHub 简易教程(转)

    文科妹学 GitHub 简易教程     #什么是 Github ?必须要放这张图了!!! Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版 ...

  3. js 操作属性,操作内容,

    disable=“disable” 让按钮变得不可选 先建一个按钮,让class = ’btn‘ 然后, 添加,修改属性 document.getElementsByClassName('btn')[ ...

  4. c#循环语句 for 循环嵌套的练习。还有跳转语句,异常语句,迭代穷举介绍

    先说一下循环嵌套:循环嵌套就是再一个循环里面再放一个循环,也就是说如果没一个循环都循环10次,那么第一个循环是1的时候,嵌套的循环会循环十次.也就是10*10的效果. for 循环语句 主要还是逻辑思 ...

  5. PCL—关键点检测(iss&Trajkovic)低层次点云处理

    博客转载自:http://www.cnblogs.com/ironstark/p/5069311.html 关键点检测往往需要和特征提取联合在一起,关键点检测的一个重要性质就是旋转不变性,也就是说,物 ...

  6. SDUT 3343 数据结构实验之二叉树四:还原二叉树

    数据结构实验之二叉树四:还原二叉树 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 给定一棵 ...

  7. 多线程学习-基础( 十)一个synchronized(){/*代码块*/}简单案例分析

    一.提出疑惑 上一篇文章中,分析了synchronized关键字的用法.但是好像遗漏了一种情况. 那就是: synchronized(obj){/*同步块代码*/} 一般有以下几种情况: (1)syn ...

  8. markdown编辑器使用教程

    网上的资料很多,我收集整理学习下. 我是下划线 *** 我是标题 我也是标题 ewq着重ewqe 列表1 列表2 我也是 我也是 有序列表 有序列表 //我是代码 int x=0; int y=x; ...

  9. ComicEnhancerPro 系列教程

    这个系列教程实在太长了,图又多,所以我不认为它适合发布在博客上.目前最新版采用CHM格式发布,就放在置顶随笔提供的网盘里,与ComicEnhancerPro在一起.

  10. Python3中的Json与Pickle

    用于将数据存取到文件中: 1:Json的存数据到文件: import json info = { "name":"hjc", "age":2 ...