在使用istreamstring,ostreamstring,streamstring的时候要用到sstream这个头文件。

在刚开始使用的时候很蒙,完全不会用,现在来谈一下这个很棒的头文件。

sstream这是一个字符串流,经常用于格式转换,包含了istream,ostream这些个函数,从字面就可以看出,istream是输入,ostream是输出。

  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4. using namespace std;
  5. int main()
  6. {
  7. int a, b;
  8. string Str1, Str2;
  9. string Input = "abc 123 bcd 456 sss 999";
  10. //ostringstream 对象用来进行格式化的输出,可以方便的将各种类型转换为string类型
  11. //ostringstream 只支持 << 操作符
  12. //格式化输出
  13. ostringstream oss;
  14. oss << 3.14;
  15. oss << "  ";
  16. oss << 55555555;
  17. oss << endl;
  18. cout  << oss.str();
  19. //double型转化为字符串
  20. oss.str("");//每次使用前清空,oss.clear() 并不能清空内存
  21. oss << 3.1234234234;
  22. Str2 = oss.str();
  23. cout << Str2 << endl;
  24. //int型转化为字符串
  25. oss.str("");
  26. oss << 1234567;
  27. Str2 = oss.str();
  28. cout << Str2 << endl;
  29. //istringstream 对象用来把一个已定字符串中的以空格隔开的内容提取出来
  30. //istringstream 只支持 >> 操作符
  31. istringstream iss(Input);//通过构造函数对istringstream类进行赋值,可以将一个字符串变量的值传递给istringstream对象
  32. //若传入的字符串是常量,也可以进行如下赋值
  33. //iss.str("ccc 555 aaa 333");
  34. //扩展,iss对象支持对C语言流的操作,所以也可以进行如下的赋值
  35. //iss.str(Input.c_str());
  36. while(iss >> Str1 >> a)
  37. {
  38. cout << Str1 << "  " << a << endl;
  39. }
  40. //stringstream类
  41. //该类就是上述istringstream和ostringstream类的综合,支持<<, >>操作符,可以进行字符串到其它类型的快速转换
  42. stringstream ss;
  43. ss << Input;
  44. while(ss >> Str1 >> a)
  45. {
  46. cout << Str1 << " " << a << endl;
  47. }
  48. //总结这几个类istringstream, ostringstream, stringstream, 包含在<sstream>文件里
  49. //输入方式:
  50. //1.构造函数。iss, oss, ss 都支持。eg. istreamstring iss(Input), ostreamstring(Input), stringstream ss(Input)
  51. //2.<< 操作符。oss, ss 支持。 oss << Input, ss << Input;
  52. //3. .Str()函数,提供C中的字符串头指针,或者匿名内存首地址
  53. //  eg. iss.str(Input.c_str()), iss.str("abc 123 345")
  54. //      oss.str(Input.c_str()), oss.str("abc 123 345")
  55. //      ss.str(Input.c_str()), ss.str("abc 123 345")
  56. //输出方式:
  57. //1. 通过.str()得到一份拷贝
  58. //eg. Str1 = iss.str(), Str1 = oss.str(), Str1 = ss.str();
  59. // 显然,这个也提供C语言的接口
  60. //  printf("%s", iss.str().c_str()),  printf("%s", oss.str().c_str()),  printf("%s", ss.str().c_str())
  61. //2. >>操作符, iss和ss支持该操作
  62. //每次不同的使用时刻必须要清空
  63. //ss.str(""), iss.str(""), oss.str(""),暂时没有发现其它的清空方法
  64. //最大的用处
  65. //输入string类型,可以通过iss 或 ss 类提取出来,功能类似于C语言中的sscanf()函数, 在TC中比较常见
  66. //提供字符串和各种类型之间的转换
  67. return 0;
  68. }

浅谈sstream头文件相关推荐

  1. 第二篇:浅谈自定义头文件可能导致的重定义问题

    前言 总看到一些地方说定义语句别放在头文件中,因为会引起重定义.但具体编程中,却发现有些定义又不得不放在头文件中. 这可如何是好?基于对这个问题的思考,有了这篇随笔. 重定义产生的情况 情况一:多个源 ...

  2. file相对路径java_浅谈java 中文件的读取File、以及相对路径的问题

    一.对于java项目中文件的读取 1.使用system 或是 系统的properties对象 ①直接是使用 string relativelypath=system.getproperty(" ...

  3. python语言源程序文件类型_浅谈Python的文件类型

    Python的文件类型主要分为3种:源代码(source file).字节码(byte-code file).优化的字节码(optimized file).这些代码都可以直接运行,不需要编译或者连接. ...

  4. 神奇的sstream头文件(整型与字符串自由转换)

    疫情当前,"串门就是互相残杀,聚会就是自寻短见",所以,让我们一起快乐的敲代码吧! 这次分享的知识是:如何让整型.实型.字符型自由转换. 直接上代码: //#include< ...

  5. oracle外部结合,浅谈Oracle外部文件

    所谓Oracle外部文件外部文件,意味着这些文件从严格意义上来讲并不属于Oracle数据库的一部分.Oracle外部文件也就是属Oracle物理存储结构的一部分,属于外面嵌入到Oracle数据库内部的 ...

  6. 浅谈Robots.txt文件给网站带来的好处

    作为一名web优化职员,我们都很清楚robots.txt文件对我们网站的需要性,Robots.txt文件只不过一个纯文本文件,它就像web地图异样,给搜寻引擎指明线路,当蜘蛛搜索一个站点时,它起首蒲伏 ...

  7. 浅谈socket传输文件速率优化

    socket传输文件速率优化 前言 最近有个需求,就是在需要提升换机助手的传输文件的传输速度.先来看看什么是换机助手. 一般厂家的换机助手都长这个样子,就是将旧手机的一些数据拷贝到新手机上去.数据一般 ...

  8. linux 目录md5校验,【我的Linux,我做主!】浅谈MD5校验文件完整一致性

    目录: (一)MD5介绍 (二)md5sum命令 (三)实战演练 (一)MD5介绍 (1.1)MD5即Message-Digest Algorithm 5(信息-摘要算法 第5版),用于确保信息传输完 ...

  9. 浅谈C/C++文件流的操作

    转自:微点阅读  https://www.weidianyuedu.com/content/3417507553653.html C/C++文件流 文件流是以外存文件为输入/输出对象的数据流.输出文件 ...

最新文章

  1. 线程池每次用都创建吗_跳槽涨薪季面试题之多线程(三)
  2. Altiris 7.1 远程
  3. Java中的代理设计模式
  4. javascript 反斜杠\
  5. hiveserver2启动不起来_汽车一键启动只能用来打火吗 车主必须知道的几个“隐藏”技巧!...
  6. 中职计算机基础课教学策略研究,中职计算机基础知识教学方法及教学策略研究.doc...
  7. 【渝粤教育】国家开放大学2018年春季 0195-22T机械设计基础 参考试题
  8. 唐努乌梁海问题的由来
  9. 0. Unix / Linux操作系统介绍
  10. 51单片机流水灯用c语言,51单片机流水灯C语言源代码.doc
  11. 最近发现的一个c# winform的一个很好用很强大的excel控件 reogrid控件
  12. 3分钟打动投资人:商业计划书篇
  13. mysql.sock连接_解决不能通过mysql.sock连接MySQL问题的办法
  14. Java多线程系列--“JUC集合”04之 ConcurrentHashMap
  15. 计算机上无线网络开关在哪里,联想笔记本无线网络开关,教您联想笔记本无线网络开关在哪...
  16. OSChina 初十乱弹 ——你明白好多道理 还是过不好这一生
  17. 从零开始学习菜鸟晋级黑客之黑客之“名词介绍”
  18. 为什么要给网桥分配IP地址
  19. 我们眼中的人那是极少数,我们才是大多数人
  20. 光头老法师手持尼康却能玩出佳能的效果

热门文章

  1. Android实现扫一扫识别图像数字(使用训练的库拍照查看扫描结果)(下)
  2. Maplab系列15:Inverted File
  3. 互联网晚报 | 10月24日 星期日 | 华为鸿蒙生态建设投入已超500亿;瑞幸门店端扭亏为盈;文旅部要求暂停经营旅游专列业务...
  4. 学生成绩管理系统E-R图
  5. 关于数据治理的读书笔记 - 什么是组织机制?
  6. hibernate Criteria setProjection
  7. 【测试】抓包获取浏览器UA,并使用Chrome 调试工具模拟手机
  8. 未能找到下列包文件: C:\Users\Administrator\Desktop\DotNetFX40\dotNetFx40LP_Full_x86_x64zh-Hans.exe
  9. 手机开发者选项中的调试模式
  10. poj求排列的逆序数