1、ostringstream:ostringstream 对象用来进行格式化的输出,可以方便的将各种类型转换为string类型。ostringstream 只支持 << 操作符。
2、istringstream :istringstream 对象用来把一个已定字符串中的以空格隔开的内容提取出来。istringstream 只支持 >> 操作符。
3、stringstream: stringstream类就是上述istringstream和ostringstream类的综合,支持<<, >>操作符,可以进行字符串到其它类型的快速转换。
4、这几个类istringstream, ostringstream, stringstream, 包含在 sstream 文件里。

输入方式:
1.构造函数。iss, oss, ss 都支持。istreamstring iss(Input), ostreamstring(Input), stringstream ss(Input)。
2.<< 操作符。oss, ss 支持。 oss << Input, ss << Input;
3.Str()函数,提供C中的字符串头指针,或者匿名内存首地址
iss.str(Input.c_str()), iss.str(“abc 123 345”)
oss.str(Input.c_str()), oss.str(“abc 123 345”)
ss.str(Input.c_str()), ss.str(“abc 123 345”)

输出方式:
1. 通过.str()得到一份拷贝
Str1 = iss.str(), Str1 = oss.str(), Str1 = ss.str();
显然,这个也提供C语言的接口
printf(“%s”, iss.str().c_str()), printf(“%s”, oss.str().c_str()), printf(“%s”, ss.str().c_str())
2.>>操作符, iss和ss支持该操作

每次不同的使用时刻必须要清空,oss.clear() 并不能清空内存
ss.str(“”), iss.str(“”), oss.str(“”),暂时没有发现其它的清空方法。

最大的用处
输入string类型,可以通过iss 或 ss 类提取出来,功能类似于C语言中的sscanf()函数, 在TC中比较常见
提供字符串和各种类型之间的转换。

//*******  istringstream用法  **************************//
#include <iostream>
#include <string>
#include <sstream>
using namespace std;int main()
{istringstream iss;string istr1, istr2, istr3;int a;//输入字符串iss.str("I love C");iss >> istr1 >> istr2 >> istr3;cout << istr1 << " " << istr2 << " " << istr3 << endl;// 字符串转换为intiss.clear();iss.str("1534");iss >> a;cout << a << endl;//用C测试转换printf("%d\n", a);return 0;
}

输出:
I love C
1534
1534


//********* ostringstream用法 **********************//
#include <iostream>
#include <string>
#include <sstream>
using namespace std;int main()
{ostringstream oss;string ostr1, ostr2, ostr3;string ostr;string strFromInt;string strFromDouble;//输出字符串ostr1 = "My ";ostr2 = "Name's ";ostr3 = "C";oss << ostr1;oss << ostr2;oss << ostr3;cout << oss.str() << endl;//int 转化为stringoss.str("");oss << 23412;cout << oss.str() << endl;//double 转化为stringoss.str("");oss << 1.2345;cout << oss.str() << endl;//将string型赋给char型。     关键:c_str函数的返回值是const char*的,不能直接赋值给char*,必须赋给const char*const char *I = strFromInt.c_str();const char *D = strFromDouble.c_str();printf("%s,%s\n", I, D);return 0;
}

输出:
My Name’s C
23412
1.2345

//*********** stringstream *********************************//
#include <iostream>
#include <string>
#include <sstream>
using namespace std;int main()
{int a, b;string Str1, Str2;string Input = "abc 123 bcd 456 sss 999";stringstream ss;ss << Input;while(ss >> Str1 >> a){cout << Str1 << " " << a << endl;}
}

输出:
abc 123
bcd 456
sss 999

//*********** getline(cin, line) *********************************//
#include <iostream>
#include <string>
#include <sstream>
using namespace std;int main()
{string line, word;while (getline(cin, line))   //getline(cin ,s)   读取一行输入的字符串,包括空格  字符串流是通过空格判断一个字符串的结束{stringstream stream(line);cout << stream.str() << endl;     while (stream >> word){ cout << word << endl; }}return 0;
}

输入:1 2 3 4
输出:
1 2 3 4
1
2
3
4

//********** 字符串流是通过空格判断一个字符串的结束 **************//
#include <iostream>
#include <string>
#include <sstream>
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

//************* ss.str("") *********************//
#include <iostream>
#include <string>
#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;return 0;
}

输出:
shanghai no1 school
size of stream = 19
s: shanghai
size of stream = 0

另外可参考: istringstream, ostringstream, stringstream用法示例

C++istringstream, ostringstream, stringstream的用法相关推荐

  1. istringstream ostringstream stringstream

    #include <iostream> #include <string> #include <sstream> using namespace std; int ...

  2. C++ istringstream、ostringstream、stringstream类用法详解

    文章目录 0 概述 1 istringstream 2 ostringstream 3 stringstream 4 类型转换 5 reference 0 概述 C++引入了ostringstream ...

  3. C++ : ostringstream、istringstream、stringstream

    这篇博文写的很好,转载收藏,感谢原作者! C++引入了ostringstream.istringstream.stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件. ...

  4. C++ stringstream的用法

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

  5. 关于stringstream的用法总结

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

  6. c++中stringstream常见用法

    c++中stringstream常见用法 stringstream使用时,要包含头文件#include<sstream>,sstream这个库的又是在于存入类型的数据可以直接进行转换,不用 ...

  7. stringstream常见用法介绍

    本文主要介绍 C++ 中 stringstream 类的常见用法. 1 概述 <sstream> 定义了三个类:istringstream.ostringstream 和 stringst ...

  8. stringstream的用法

    C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性.类型安全和可扩展性. <sstream>库定义了三种类:ist ...

  9. istringstream、ostringstream、stringstream 类介绍

    istringstream.ostringstream.stringstream 类介绍 c++的输入输出主要分为以下3种 标准流输入输出(基于控制I/O) 头文件:#include <iost ...

最新文章

  1. WOJ 43 电话邀请
  2. linux4.14内核,Linux内核4.14.14,4.9.77,4.4.112和3.18.92更新发布
  3. 使用timer控件创建一个简单的报警程序
  4. Excel的基础操作
  5. SpringColoud学习笔记007---杂七杂八001--@Resource与@Autowired注解的区别
  6. debian开机打开浏览器_使自動起動! 我学到了!原来“文件”可以跟“应用程序”一样,都能设置开机自启!!...
  7. linux刻录文件,Linux命令行下刻录CD-ROM数据光盘详细过程
  8. LinkedHashMap入门
  9. 文件权限管理命令chmod,chown与文本搜索命令grep
  10. Julia: MFDCCA和MFCCA算法代码
  11. eclipse汉化方法
  12. 国内博客(blog)搬家工具(服务)大全
  13. firefox改html内容,可以firefox扩展修改HTML文档的DOM然后保存为HTML吗?
  14. 元素查找(xpath)
  15. wps2016向程序发送命令_word文档打开,提示“向程序发送命令时出现问题”的原因...
  16. 【centos】安装wget------转发自【小姜dot】
  17. Python实例29:利用python自动创建多个Excel表格
  18. c位边上还有什么位_λ(c位旁边二个位置叫什么)
  19. leetcode 周赛214 学习笔记(5561、1647)
  20. 《Java语言高级特性(阿里云大学)》笔记 第7~14章 类库+正则+国际化+比较器(文档+思维导图)

热门文章

  1. 陈景润“1+2”定理与黎曼“1/2”猜想
  2. Spring 原理篇
  3. HarmonyOS开发者创新大赛总决赛结果公布
  4. js 选项卡 实现方法
  5. 深度学习网络大杀器之Dropout(II)——将丢弃学习视为集成学习之我见
  6. 闲人闲谈PS之十——浅谈EPC工程行业老方案
  7. 01.夜莺监控简介及安装
  8. KK集团再闯IPO,四年巨亏80亿
  9. dotnet Docker 部署
  10. jQuery+Ajax制作的图书管理系统