服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C++使用boost::lexical_cast进行数值转换

C++使用boost::lexical_cast进行数值转换

2022-12-29 14:15天方 C/C++

这篇文章介绍了C++使用boost::lexical_cast进行数值转换的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

在STL库中,我们可以通过stringstream来实现字符串和数字间的转换:

?
1
2
3
4
5
int i = 0;
stringstream ss;
 
ss << "123";
ss >> i;

但stringstream是没有错误检查的功能,例如对如如下代码,会将i给赋值为12.

?
1
2
ss << "12.3";
ss >> i;

甚至连这样的代码都能正常运行:

?
1
2
ss << "hello world";
ss >> i;

这显然不是我们所想要看到的。为了解决这一问题,可以通过boost::lexical_cast来实现数值转换:

?
1
2
int i = boost::lexical_cast<int>("123");
double d = boost::lexical_cast<double>("12.3");

对于非法的转换,则会抛异常:

?
1
2
3
4
5
6
7
8
try
{
    int i = boost::lexical_cast<int>("12.3");
}
catch (boost::bad_lexical_cast& e)
{
    cout << e.what() << endl;
}

对于16机制数字的转换,可以以如下方式进行:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template <typename ElemT>
struct HexTo {
    ElemT value;
    operator ElemT() const {return value;}
    friend std::istream& operator>>(std::istream& in, HexTo& out) {
        in >> std::hex >> out.value;
        return in;
    }
};
 
int main(void)
{
    int x = boost::lexical_cast<HexTo<int>>("0x10");
}

到此这篇关于C++使用boost::lexical_cast进行数值转换的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/TianFang/archive/2013/02/05/2892506.html

延伸 · 阅读

精彩推荐
  • C/C++C++实现LeetCode(40.组合之和之二)

    C++实现LeetCode(40.组合之和之二)

    这篇文章主要介绍了C++实现LeetCode(40.组合之和之二),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...

    Grandyang11782021-11-26
  • C/C++解读C++编程中类模板的三种特化

    解读C++编程中类模板的三种特化

    这篇文章主要介绍了C++编程中类模板的三种特化,需要的朋友可以参考下...

    MasterFT11062021-03-19
  • C/C++C语言之从字符数组中删除特定的字符

    C语言之从字符数组中删除特定的字符

    本篇文章主要介绍了从字符数组中删除特定字符的实现方法,有需要的朋友可以参考下...

    -FIGHTING-4362021-03-03
  • C/C++C++连接并使用MySQL数据库

    C++连接并使用MySQL数据库

    这篇文章主要为大家详细介绍了C++连接并使用MySQL数据库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    沪飞飞6582021-09-18
  • C/C++Windows上CLion的配置步骤详解

    Windows上CLion的配置步骤详解

    这篇文章主要介绍了Windows上CLion的配置,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参...

    至学者7172021-10-07
  • C/C++C++程序中main(int argc, char *argv[])函数的参数意义

    C++程序中main(int argc, char *argv[])函数的参数意义

    这篇文章主要介绍了C++程序中main(int argc, char *argv[])函数的参数意义,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    逻辑空间4092021-07-01
  • C/C++矩阵的行主序与列主序的分析

    矩阵的行主序与列主序的分析

    这篇文章主要介绍了矩阵的行主序与列主序的分析的相关资料,需要的朋友可以参考下...

    C语言教程网7152021-05-21
  • C/C++C++版图书管理系统

    C++版图书管理系统

    这篇文章主要为大家详细介绍了C++版图书管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    虫洞空间4432022-10-18