今天看书看到了strintstream,感觉用起来很方便,尤其是将数值转换为字符串的时候使用stringstream,可以达到非常美妙的效果。对比前面我的一篇文章--如何将数字转换为字符串,使用#的方法,使用stringstream也是一种很好的选择。
  废话不多说,直接看代码吧。
  main.cpp文件:

#include <iostream>
#include <sstream>
using namespace std;

  int main()
{
  stringstream ss;    //流输出
  ss << "there are " << 100 << " students.";
  cout << ss.str() << endl;

  int intNumber = 10;    //int型
  ss.str("");
  ss << intNumber;
  cout << ss.str() << endl;

  float floatNumber = 3.14159f;  //float型
  ss.str("");
  ss << floatNumber;
  cout << ss.str() << endl;

  int hexNumber = 16;        //16进制形式转换为字符串
  ss.str("");
  ss << showbase << hex << hexNumber;
  cout << ss.str() << endl;
  return 0;
}

输出结果如下:
there are 100 students.
10
3.14159
0x10
  可以看出使用stringstream比较使用#的好处是可以格式化数字,以多种形式(比如十六进制)格式化,代码也比较简单、清晰。

同样,可以使用stringstream将字符串转换为数值:

#include <iostream>
#include <sstream>
using namespace std;

  template<class T>
T strToNum(const string& str)  //字符串转换为数值函数
{
  stringstream ss(str);
  T temp;
  ss >> temp;
  if ( ss.fail() ) {
    string excep = "Unable to format ";
    excep += str;
    throw (excep);
  }
  return temp;
}

int main()
{
  try {
    string toBeFormat = "7";
    int num1 = strToNum<int>(toBeFormat);
    cout << num1 << endl;

    toBeFormat = "3.14159";
    double num2 = strToNum<double>(toBeFormat);
    cout << num2 << endl;

    toBeFormat = "abc";
    int num3 = strToNum<int>(toBeFormat);
    cout << num3 << endl;
  }
  catch (string& e) {
    cerr << "exception:" << e << endl;
  }
  return 0;
}

这样就解决了我们在程序中经常遇到的字符串到数值的转换问题。

本文转自panpan3210 51CTO博客,原文链接:http://blog.51cto.com/panpan/107732,如需转载请自行联系原作者

数值和字符串互相转换相关推荐

  1. 汇编语言随笔(8)-实验9(显示字符串)、实验10(子程序:除法溢出,数值到字符串的转换)和课程设计1

    实验9 编程,在屏幕中间分别显示绿色,绿底红色,白底蓝色的字符串'welcome to masm!'.       80x25彩色字符模式下的显示缓冲区,每页可以显示25行,每行80个字符,其中每个字 ...

  2. 字符串数字转换成对应的Double数值

    一,介绍 前面实现了字符串转换成整形数值.参考这里: 它不支持小数,不支持符号(正.负号) 现在实现一个更复杂一点字符串转换成数值的程序. 它支持"浮点字符串"转换成对应的浮点数值 ...

  3. python整数转换字符串_使用Python中的str()函数将整数值转换为字符串

    python整数转换字符串 Given an integer value and we have to convert the value to the string using str() func ...

  4. C++11带来的全新数值和字符串转换函数

    数值转字符串: std::string str; int a = std::stoi(str); float b = std::stof(str); double b = std::stod(str) ...

  5. python的数值可以转换为字符串_python 数值转换为字符串Python对HTML转义字符进行反转义...

    什么是转义字符 在 HTML 中 .& 等字符有特殊含义( 用于标签中,& 用于转义),他们不能在 HTML 代码中直接使用,如果要在网页中显示这些符号,就需要使用 HTML 的转义字 ...

  6. VB 字节数组和字符串的转换问题 (StringByte)

    VB 字节数组和字符串的转换问题 (String<>Byte) Posted by JiaJia 16 March,2009 (2)Comment 一. 前言 数据类型转换在编程中经常用到 ...

  7. 《剑指offer》-- 把数组排成最小的数、丑数、二进制中1的个数、表示数值的字符串、替换空格

    一.把数组排成最小的数: 1.题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 ...

  8. 将字符串转为16进制数_C语言中的进制互转与数值和字符串互转的混搭玩法

    点击上方公众号名称关注,获得更多内容 ✎ 编 者 悟 语 很多事根本就没有那么多的前提可言,想做事,就不要把先决条件看得过重. 文 章 导 读 今天给小伙伴们介绍下了下进制转换和字符串与数值互转的方法 ...

  9. python核心数据类型——数值、字符串和列表的基本操作

    数值.字符串和列表的基本操作举例 **1. 列表 list** * --------- ① 下标索引及长度测量 * --------- ② 追加新列表以及append( )的应用 * -------- ...

最新文章

  1. 虚拟化涉及的关键技术都有哪些,分别实现了什么功能?
  2. mxnet基础到提高(43)-编译安装
  3. 天平秤重问题(三进制)
  4. 保留IP地址(特殊IP地址)
  5. mybatis嵌套查询和嵌套结果有什么区别_Java面试专题之九:Mybatis面试5个大概率被问到的问题...
  6. python教程循环语句_Python教程:关于Python 循环语句
  7. java犀牛是什么意思_深入浅出Rhino:Java与JS互操作
  8. TSAP(4) : 时间序列采样[asfreq( ) VS resample( )]
  9. 为语音社交平台加一个防护罩,即构上线实时语音安全方案
  10. 数据结构Status
  11. imac下修改本地hosts文件解决react项目中的跨域问题
  12. 一个操作系统的实现:BOOT
  13. 与二次元老婆邂逅的游戏的创建过程(一)
  14. 功能测试非常重要的43个功能测试点...
  15. python抓取懂球帝部分球员数据
  16. lib lib32 lib64等lib文件夹的说明
  17. K8S组件介绍及安装
  18. FreeType 管理字形
  19. springBoot项目如何启动多个实例
  20. thrift的使用介绍

热门文章

  1. qc linux mysql 安装教程_mysql5.7在centos上安装的完整教程以及相关的“坑”
  2. 漫威游戏的VR体验 让你尖叫
  3. 电商的「穿衣AI」用得好,剁手根本停不了 | CVPR 2020
  4. 马斯克的中国救星,特斯拉上海工厂内部首度曝光,数百台机器人维持疫情期间生产...
  5. 能直接复制图片中文字,功能远超普通OCR软件,MIT学生开发了一款强大Chrome插件...
  6. 【报告下载】想要评测 Kylin和Vertica的性能?这份基准测试白皮书已经替你做到了...
  7. 9.1 正则介绍_grep(上);9.2 grep(中);9.3 grep(下)
  8. RIPv1与RIPv2互通
  9. NopCommerce架构分析之八------多语言
  10. Delphi(Tuxedo,BDE,ADO)三合一数据集组件HsTxQuery