使用 stringstream 进行类型转换
如何用使用stringstream进行类型转换:
1. 下面例子为整型和sting类型的相互转换示例
整型转换为字符串类型
string NumberToString(int num)
{
stringstream ss;
ss<<num; //像流中传值
string result;
ss>>result; //将流中的值写入到result
return result;
}
字符创类型转换为整型
int StringToNumber(string strNum)
{
stringstream ss;
ss<<strNum;
int result;
ss>>result;
return result;
}
编译期就确定了num,result,strNum的类型,调用stringstream的时候拥有足够的信息判断来进行自动转换,并将转换结果缓存到stringstream对象的内部缓冲中
stringstream对象会根据需要自动分配内存,不用担心溢出问题.
例如:
float n = 22.22;
string strNum = "22.22";
cout<<StringToNumber(strNum)<<endl;
cout<<NumberToString(n)<<endl;
输出:22 22
2. 任意类型的转换
template <class output_type,class input_type>
output_type Convert(const input_type &input)
{
stringstream ss;
ss<<input;
output_type result;
ss>>result;
return result;
}
例如:
float n = 22.22;
string strNum = "22.22";
float f = Convert<float>(strNum);
cout<<f<<endl;
string ss = Convert<string>(n);
cout<<ss<<endl;
输出: 22.22 22.22
使用 stringstream 进行类型转换的更多相关文章
- C++中使用stringstream简化类型转换
C++标准库中的<sstream>提供了一个stringstream,以前基本没用过,突然发现很好用(^-^)V 参见 http://www.cplusplus.com/reference ...
- 使用stringstream进行类型转换与字符串分割
C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性.类型安全和可扩展性. 如果你已习惯了<stdio.h>风格的转 ...
- C++中使用stringstream进行类型转换操作
stringstream包括istringstream和ostringstream,提供读写string的功能,使用时需包含stream文件.4个操作:1. stringstream strm; 创建 ...
- YUV格式转换RGB(基于opencv)
在编写代码将需要处理YUV格从每个视频帧中提取,然后将其保存为图片.有两种常见的方法在线,第一种是通过opencv自带cvCvtColor,可是这样的方法有bug.得到的图片会泛白.另外一种方法是公式 ...
- 使用stringstream对象简化类型转换
< sstream>库定义了三种类:istringstream.ostringstream和stringstream,分别用来进行流的输入.输出和输入输出操作.另外,每个类都有一个对应的宽 ...
- C++ stringstream 简化数据类型转换
C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性.类型安全和可扩展性. 在C++中经常会使用到snprintf来格式化一些输 ...
- stringstream 类型转换
stringstream可以吞下不同的类型,然后吐出不同的类型. 这样可以实现int,string,double等类型的转换 #include<sstream> using namespa ...
- C++ stringstream(强制类型转换)
#include <iostream>#include <string>#include <sstream>using namespace std;int main ...
- 使用C++ stringstream来进行数据类型转换
参考链接: http://blog.csdn.net/tao_627/article/details/39000779
随机推荐
- Gradle DSL Walle渠道包后安装启动APP
DSL(Domain-Specific Language) Gradle 是一个编译打包工具,但实际上它也是一个编程框架. Task 是 Gradle 中的一种数据类型,它代表了一些要执行或者要干的工 ...
- PTA(Basic Level)1020.月饼
月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是多少. 注意:销售时允许取出一部分库存.样 ...
- axios对请求各种异常情况处理的封装
前端网络请求封装 前端采用了axios来处理网络请求,为了避免在每次请求时都去判断各种各样的网络情况,比如连接超时.服务器内部错误.权限不足等等不一而足,我对axios进行了简单的封装,这里主要使用了 ...
- kafka 名词解释及原理解析过程(三)
为什么要了解这些名词的解释呢?因为在学一个新的知识或者领域的时候,我们需要知道它所定义的概念和名词意思,因为只有这样我们才能理解和掌握这个新的知识点,才能更加系统的掌握这个技术. 一.名词解释 1.b ...
- Linux 下面安装 nginx 以及进行TCP反向代理、负载均衡的过程
1. 下载安装nginx 注意 因为stream 并不是 nginx自带的module 所以需要 在安装是 通过 --with 的方式增加上. 下载必要的程序包 # openssl wget htt ...
- Ural 1298 Knight 题解
目录 Ural 1298 Knight 题解 题意 题解 程序 Ural 1298 Knight 题解 题意 给定一个\(n\times n(1\le n\le8)\)的国际象棋棋盘和一个骑士(基本上 ...
- ROS的初步学习--创建一个工作空间和一个程序包
快速开始 创建工作区(workspace) 工作区可以作为一个独立的项目进行编译,存放ROS程序的源文件.编译文件和执行文件.建立工作区的方法如下: mkdir -p ~/catkin_ws/src ...
- Python re 模块findall() 函数返回值展现方式详解
findall 函数: 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表. 注意: match 和 search 是匹配一次 findall 匹配所有,mat ...
- 火狐 , IE , 谷歌浏览器的 驱动下载地址汇总
一.Firefox和驱动下载地址 所有火狐浏览器版本下载地址:http://ftp.mozilla.org/pub/firefox/releases/ 所有火狐驱动geckodriver版本下载地址: ...
- Unity 用脚本给EventTrigger添加各种事件
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Eve ...