一、简介

<sstream>类库定义了三种类:istringstream,ostringstream,stringstream.分别用来进行流的输入,流的输出,输入输出操作.在此演示stringstream的使用.**stringstream最大的特点是可以很方便的实现各种数据类型的转换,不需要像C语言中转换那么麻烦,而且转换非常安全.所以stringstream经常用于方便安全的类型转换.

二、用法

(1)数据的分割(string --> string)

 #include<stdio.h>
#include<iostream>
#include<sstream>
using namespace std; string str[]; int main()
{
string line;
int cnt = ;
while (getline(cin, line)) //每次取一行
{
stringstream ss(line); //将字符串根据空格分隔成一个个单词
while (ss >> str[cnt])
{
cout << str[cnt++] << " ";
}
}
return ;
}

(2)数据的拼接

 #include<stdio.h>
#include<iostream>
#include<sstream>
using namespace std; int main()
{
stringstream ss;
int num1 = ;
int num2 = ;
string str2 = "abc";
string str;
ss << num1;
ss << num2;
ss << str2;
ss >> str;
cout << str; //可以不同类型拼接,输出123456789abc return ;
}

(3)数据类型的转换

 #include<stdio.h>
#include<iostream>
#include<sstream>
using namespace std; template<class T>
void Tostring(string &result, const T &t) //用模板将各种数值转化成string类型
{
stringstream ss;
ss << t;
ss >> result;
} int main()
{
stringstream ss;
string str;
string str2 = "1122334455a123";
int num1 = ;
float num2 = 3.1415926;
char arr[]; Tostring(str, num2);
cout << str << endl; ss.clear();
ss.str(""); //在另外一篇blog有解释
ss << num1;
ss >> str;
cout << str << endl; //int --> string,输出12345 ss.clear();
ss.str("");
ss << num2;
ss >> str;
cout << str << endl; //float --> string,输出3.14159,好像小数点5位之后的会丢掉 ss.clear();
ss.str("");
ss << str2;
ss >> num1; //string --> int,输出1122334455,遇到非数字会停止
cout << num1 << endl; ss.clear();
ss.str("");
ss << str2;
ss >> num2; //string --> float,输出1122334455,遇到非数字也会停止
cout << num1 << endl; ss.clear();
ss.str("");
ss << str2;
ss >> arr; //string --> char*,输出1 3,转换成其他类型数组不行
cout << arr[] <<" "<< arr[] << endl; return ;
}

stringstream类的简介和用法的更多相关文章

  1. c++之stringstream类的用法

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

  2. istringstream、ostringstream、stringstream 类简介

    本文系转载,原文链接:http://www.cnblogs.com/gamesky/archive/2013/01/09/2852356.html ,如有侵权,请联系我:534624117@qq.co ...

  3. sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇(十五)

    Object中的wait.notify.notifyAll,可以用于线程间的通信,核心原理为借助于监视器的入口集与等待集逻辑 通过这三个方法完成线程在指定锁(监视器)上的等待与唤醒,这三个方法是以锁( ...

  4. CSS中伪类及伪元素用法详解

    CSS中伪类及伪元素用法详解   伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的 ...

  5. Cwinux简介及用法简述

    我在我的个人博客上发表了一篇文章 Cwinux简介及用法简述 http://apprentice89.com/cwinux_introduction_and_use/

  6. oc-12-NSString 类简单介绍及用法

    // 11-[掌握]NSString 类简单介绍及用法 #import <Foundation/Foundation.h> int main(int argc, const char * ...

  7. istringstream、ostringstream、stringstream 类介绍 .

    istringstream.ostringstream.stringstream 类介绍 . 转自:http://www.cnblogs.com/gamesky/archive/2013/01/09/ ...

  8. 18、面向对象基本原则及UML类图简介

    18.1.面向对象基本原则 18.1.1.面向抽象原则 抽象类特点: a.抽象类中可以有abstract方法,也可以有非abstract方法. b.抽象类不能用new运算符创建对象. c.如果一个非抽 ...

  9. InheritableThreadLocal类原理简介使用 父子线程传递数据详解 多线程中篇(十八)

      上一篇文章中对ThreadLocal进行了详尽的介绍,另外还有一个类: InheritableThreadLocal 他是ThreadLocal的子类,那么这个类又有什么作用呢?   测试代码 p ...

随机推荐

  1. MessageFomat学习

    MessageFomat 提供了一种以与语言无关的方式生成连接消息的方法. 用它来构造消息,显示给最终用户. 1.MessageFormat的格式 MessageFormatPattern:Forma ...

  2. E20180603-hm

    breadth  n. 宽度; 宽容; (知识.兴趣等的) 广泛; depth  n. 深度; 深处,深海; 深奥,奥妙; 进深; deep adj. 深的; 深远的,深奥; 重大的,深刻的; 强烈的 ...

  3. 668. Kth Smallest Number in Multiplication Table

    Nearly every one have used the Multiplication Table. But could you find out the k-th smallest number ...

  4. POJ3264 【RMQ基础题—ST-线段树】

    ST算法Code: //#include<bits/stdc++.h> #include<cstdio> #include<math.h> #include< ...

  5. lightoj 1096【矩阵快速幂(作为以后的模板)】

    基础矩阵快速幂何必看题解 #include <bits/stdc++.h> using namespace std; /* 0 1 2 3 4 5 6 7 0 0 0 */ const i ...

  6. 51nod 1348【next_permutation】

    next_permutation的粗讲来自窝bin博客 两个重载函数,第二个带谓词参数_Comp,其中只带两个参数的版本,默认谓词函数为"小于". 返回值:bool类型 分析nex ...

  7. Telnet 命令格式

    Telnet host 端口 如:Telnet 127.0.0.1 11211 执行命令进入后 ctr +] ,打开回显,并回车即可

  8. 2013 Noip提高组 Day1

    3285 转圈游戏 2013年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解       题目描述 Description ...

  9. spoj3105 MOD - Power Modulo Inverted(exbsgs)

    传送门 关于exbsgs是个什么东东可以去看看yyb大佬的博客->这里 //minamoto #include<iostream> #include<cstdio> #i ...

  10. IT兄弟连 JavaWeb教程 MVC设计模式

    MVC是Model-View-Controller的简称,即模型-视图-控制器.MVC是一种设计模式,它强制性地把应用程序的数据展示.数据处理和流程控制分开.MVC把应用程序分成3个核心模块:模型.视 ...