使用 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
随机推荐
- lua数据类型的的操作(三)
上一章我们学习了lua的数据类型,以及语法的定义,今天我们学习lua的数据类型操作,其实就是lua库一些api的操作,遇到对数据类型处理时,可以根据lua库提供的操作来实现. 一.字符串操作 1.字符 ...
- Win7 Eclipse 搭建spark java1.8环境:WordCount helloworld例子
[学习笔记] Win7 Eclipse 搭建spark java1.8环境:WordCount helloworld例子在eclipse oxygen上创建一个普通的java项目,然后把spark-a ...
- unittest参数化(paramunittest)
前言 paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例前面讲数据驱动的时候,用ddt可以解决多组数据传入,自动生成多个测试用例.本篇继续介绍另 ...
- Python学习笔记:格式化输出
%d digit%s string%f float程序运用:name = input("please input your name:")age = int(input(" ...
- Ubuntu 提示sudo: java: command not found解决办法
ubuntu下运行sudo Java 时提示“sudo: java: command not found”.在网上找了,其中很多方法都提示要修改/etc/profile的配置,或是修改/etc/env ...
- XSS跨站攻击靶场-通关笔记
XSS攻击是Web攻击中最常见的攻击手法之一,XSS中文名跨站脚本攻击,该攻击是指攻击者在网页中嵌入恶意的客户端脚本,通常是使用JS编写的恶意代码,当正常用户访问被嵌入代码的页面时,恶意代码将会在用户 ...
- 牛客 197C 期望操作数
大意: 给定$x,q$, 每步操作$x$等概率变为$[x,q]$中任意一个数, 求变为$q$的期望操作数. 很容易可以得到$f(x,q)=\frac{\sum\limits_{i=x+1}^qf(i, ...
- MyBatis 示例-插件
简介 利用 MyBatis Plugin 插件技术实现分页功能. 分页插件实现思路如下: 业务代码在 ThreadLocal 中保存分页信息: MyBatis Interceptor 拦截查询请求,获 ...
- MySQL去除查询结果重复值
下面先来看看例子: table id name 1 a 2 b 3 c 4 c 5 b 库结构大概这样,这只是一个简单的例子,实际情况会复杂得多. 比如我想用一条语句查询得到name不重复 ...
- 微信小程序实现折叠面板
wxml: <view class='help'> <view class='help_item'> <view class='title' data-index='1' ...