zoukankan      html  css  js  c++  java
  • Boost--lexical_cast 一个方便安全高效的string转换库

    #include "boostlexical_cast.hpp"
    #include <vector>
    #include <iostream>
    #include <array>
    
    using namespace std;
    using boost::lexical_cast;
    using boost::bad_lexical_cast;
    
    int main()
    {
    
    // C++自带的函数不好记,且命名不统一,有些a开头有些是str开头
    /*  string转成其他类型
    atof     Convert string to double (function )
    atoi     Convert string to integer (function )
    atol     Convert string to long integer (function )
    atoll    Convert string to long long integer (function )
    strtod   Convert string to double (function )
    strtof   Convert string to float (function )
    strtol   Convert string to long integer (function )
    strtold  Convert string to long double (function )
    strtoll  Convert string to long long integer (function )
    strtoul  Convert string to unsigned long integer (function )
    strtoull Convert string to unsigned long long integer (function )
    sscanf()
       
       其他类型转string需要完全不同的方法
    stringstream strm;
    strm << int_val;
    string s = strm.str();
    sprintf()
    itoa  // non-standard
    */
    
    
        try
        {
            int s = 345;
    // 只需要使用同一个函数就可以完成不同类型的转换
            string str = lexical_cast<string>(s);
            str = "Message: " + lexical_cast<string>('A') + "==" + lexical_cast<string>(34.5);
            cout << str << endl;
    //也可以转成char类型的array
            array<char, 64> msg = lexical_cast< array<char, 64> >(23456);
    
            s = lexical_cast<int>("5678");
            //s = lexical_cast<int>("56.78"); // bad_lexical_cast
            //s = lexical_cast<int>("3456yut");  // bad_lexical_cast 
            s = lexical_cast<int>("3456yut", 4);  //ok
            cout << s << endl;
        }
        catch(bad_lexical_cast & e)
        {
            cout << "Exception caught:" << e.what() << endl; 
        }
        
    }
    
  • 相关阅读:
    Object.defineProperty实现数据绑定
    trigger回调方法的实现
    window.print()打印页面指定内容(使用iframe保证原页面不失效)
    Visual Studio Code 快捷键大全(Windows)
    个人博客-逐梦博客,宋
    Vue.js项目在apache服务器部署后,刷新404的问题
    阿里云ECS服务器Ubuntu配置MySQL远程访问
    最全面的css布局
    js中数组常用方法总结
    PHP环境搭建
  • 原文地址:https://www.cnblogs.com/logchen/p/10217324.html
Copyright © 2011-2022 走看看