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

2stringstream提供的转换和格式化

程序:

#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

  

转载于:https://www.cnblogs.com/propheteia/archive/2012/07/12/2588225.html

stringstream的基本用法相关推荐

  1. 【转】stringstream(sstream)常用用法介绍

    [转]stringstream(sstream)常用用法介绍 转载自这篇博客 本文主要介绍 C++ 中 stringstream 类的常见用法. 1 概述 <sstream> 定义了三个类 ...

  2. stringstream的常见用法

    stringstream的常见用法 前言 今天笔试实习,做到一道字符串的题,感觉自己对字符串掌握的不够,今天记录记录stringstream的学习 一.简介 头文件是 #include<sstr ...

  3. php cstr,小心stringstream.str()字符串用法的陷阱

    在编写应用程序时,我们经常要使用到字符串.C++标准库中的和为我们操作字符串提供了很多的方便,例如:对象封装.安全和自动的类型转换.直接拼接.不必担心越界等等.但今天我们并不想长篇累牍得去介绍这几个标 ...

  4. 关于stringstream的用法总结

    关于stringstream的用法总结 将整形转化成字符串 #include <iostream> #include <sstream>using namespace std; ...

  5. C++stringstream的妙用

    1 介绍 C++引入了ostringstream.istringstream.stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件. istringstream类用于 ...

  6. stringstream的使用方法

    在C语言中,如果想要将一个整形变量的数据转化为字符串格式,可以使用下面的方法: 1.使用itoa()函数 2.使用sprintf()函数 但是两个函数在转化时,都得需要先给出保存结果的空间,那空间要给 ...

  7. 算法竞赛入门经典(第二版) | 例题5-3 安迪的第一个字典 (紫书牛啤!)(UVa10815,Andy's First Dictionary)

    概述: 输入一个文本,找出所有不同的单词,按字典序排序,去重后,输出,单词不分大小写. 储备知识: 1.sstring头文件的用法→sstring头文件函数详解 2.cctype头文件的用法→ccty ...

  8. leetcode string

    1. palindrome-partitioning 解法: 因为需要输出所有的可行解,所以采用深度优先遍历(回溯法).输出最佳解的题目一般可以使用动态规划. 1 class Solution {2 ...

  9. PAT——Recover the Smallest Number

    Recover the Smallest Number 题目 AC代码 参考 知识点总结 题目 Given a collection of number segments, you are suppo ...

最新文章

  1. python抓包工具_「docker实战篇」python的docker爬虫技术-fiddler抓包软件详细配置(七)...
  2. C# GUID的使用
  3. 2022年人工智能全球最具影响力学者榜单AI 2000
  4. 师范类专业可以不考计算机二级吗,2021师范专业要考教师资格证吗?师范生需要考的证有哪些?...
  5. Insertion Sort List
  6. 微信小程序 html css xml,微信小程序 使用towxml解析html流程及踩坑记录
  7. 现在已经到了考虑云计算的时候
  8. 什么?注释里面的代码居然能够执行
  9. Opportunity的chance of success determination逻辑
  10. Iptables防火墙原理
  11. 总被审稿人提起的多重假设检验校正是什么?
  12. HBase之MemStore flush流程
  13. Unique Binary Search Trees ll -深度优先遍历DFS
  14. SLAM_关于VIO中IMU预积分的讲解
  15. python学习日记(OOP——静态方法和类方法)
  16. tomcat设置JAVA_OPTS
  17. 虚幻4 游戏引擎(一):材质教学
  18. Android studio app登录界面设计
  19. Adobe flash professional CS5的序列号
  20. 计算机网络核心知识。

热门文章

  1. java线程分类_Java 线程类别
  2. axios获取图片显示_vue中使用axios post上传头像/图片并实时显示到页面的方法
  3. php 正则表达式 后向引用,php正则表达式 后向引用~ | 学步园
  4. 表达式_ya是不合法的c语言标识符,高级语言程序设计复习题.doc
  5. linux的 vi编辑器在哪,Linux Vi编辑器的使用
  6. Django远端访问
  7. java反射学习(1):反射的基本操作
  8. C#工厂方法模式 -抽象工厂模式
  9. python赋值语句对错_深入理解Python中变量赋值的问题
  10. Lua:给Redis用户的入门指导