< sstream>库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本。简单起见,我主要以stringstream为中心,因为每个转换都要涉及到输入和输出操作。

对象声明方式

stringstream ss;

使用方法

stringstream ss;
int n=0;
char s[]="123456";
ss<<s;
ss>>n;  //n=123456,n发生改变

重复使用stringstream对象

stringstream对象的构造和析构函数通常是非常耗费CPU时间的,重复使用stringstream对象可以提高程序的效率。但是重复利用前需要调用clear()函数,否则会出错。

stringstream对象的特点功能

在我看来stringstream对象的强大之处在于它对于字符串的分割,在一个字符串中包含空格的时候,使用stringstream可以很方便的分割成为多个字符串。

举例

char s[100]="jdfhufgh fjhg lkj dd";
char temp[100];
stringstream ss(s);
while(ss>>temp)
cout<<temp<<' ';

输出:jdfhufgh fjhg lkj dd

从以上代码可以看出,原字符串s被截断成4个字符串,是很方便的。当然有人会问了有了截断,必然会有字符串连接。当然,字符串连接的话请使用string类对象。

其实sprintf()也能实现字符类型转换,但是sprintf使用起来容易出错,这里就不加赘述了。

对sprintf想了解更多请点击sprintf详解

stringstream测试代码

#include<iostream>
#include<sstream>
using namespace std;
int main()
{
    stringstream st;
    char s[40]="123646 35456 6546";
    char s1[40];
    int x;
    st<<s;
    while(st>>x)
    {
    cout<<x<<endl;
    }

    //对象重用
    st.clear();
    string str1="jfhgf6454 646 6465 fgkjfhi";
    string str2="";
    st<<str1;
    while(st>>str2)
    {
        cout<<str2<<endl;
    }
    return 0;
}

如有不当之处欢迎指出!!

最新文章

  1. C# 程序异常管理方案
  2. BZOJ2435——[Noi2011]道路修建
  3. c# 将字符串转换为逻辑表达式(字符串转换布尔)
  4. Visual Basic|VB 6.0中文版
  5. 3G? 2G? 2.5G? 4G? 与 WIFI, GPRS,CDMA 3G无线上网
  6. HighCharts 后台加载数据的时候去掉默认的 series
  7. python 中函数参数传递形式
  8. Swift - 类型嵌套(以扑克牌结构体为例)
  9. iOS tableView移除某一行的分割线 让分割线宽度为整个cell的宽度
  10. 建造者模式(Builder Pattern)
  11. C# DataTable 转 实体类
  12. JavaScript 基础(一) - JavaScript的引入方式,JavaScript 变量命名规则,JS 的五种基本数据类型,ECMAScript 算数运算符,逻辑运算符
  13. poj 1386 Play on Words门上的单词【欧拉回路&amp;&amp;并查集】
  14. 记 Java 各版本新特性
  15. poj1179 环形+区间dp
  16. B1014. 福尔摩斯的约会
  17. linux下简单的备份的脚本 2 【转】
  18. RedHat Linux文本模式下乱码解决方法
  19. IDEA去除 xml 中Sql语句的背景
  20. KRKR基础篇(二)

热门文章

  1. jquery取前、后、父、子元素
  2. discuz数据库相关表
  3. git 安装使用
  4. web.xml 中&lt;context-param&gt;与&lt;init-param&gt;的区别与作用
  5. PHP错误杂记
  6. 一步一步从原理跟我学邮件收取及发送 9.多行结果与socket的阻塞
  7. H5WebSocket消息推送
  8. [DeeplearningAI笔记]神经网络与深度学习人工智能行业大师访谈
  9. Git:warning: LF will be replaced by CRLF
  10. javascript中的BOM对象