欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++使用boost::lexical_cast進(jìn)行數(shù)值轉(zhuǎn)換

 更新時間:2022年06月20日 09:34:17   作者:天方  
這篇文章介紹了C++使用boost::lexical_cast進(jìn)行數(shù)值轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

在STL庫中,我們可以通過stringstream來實現(xiàn)字符串和數(shù)字間的轉(zhuǎn)換:

    int i = 0;
    stringstream ss;

    ss << "123";
    ss >> i;

但stringstream是沒有錯誤檢查的功能,例如對如如下代碼,會將i給賦值為12.

    ss << "12.3";
    ss >> i;

甚至連這樣的代碼都能正常運行:

    ss << "hello world";
    ss >> i;

這顯然不是我們所想要看到的。為了解決這一問題,可以通過boost::lexical_cast來實現(xiàn)數(shù)值轉(zhuǎn)換:

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

對于非法的轉(zhuǎn)換,則會拋異常:

    try
    {
        int i = boost::lexical_cast<int>("12.3");
    }
    catch (boost::bad_lexical_cast& e)
    {
        cout << e.what() << endl;
    }

對于16機(jī)制數(shù)字的轉(zhuǎn)換,可以以如下方式進(jìn)行:

    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");
    }

到此這篇關(guān)于C++使用boost::lexical_cast進(jìn)行數(shù)值轉(zhuǎn)換的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++ 數(shù)據(jù)類型強制轉(zhuǎn)化的實現(xiàn)

    C++ 數(shù)據(jù)類型強制轉(zhuǎn)化的實現(xiàn)

    這篇文章主要介紹了C++ 數(shù)據(jù)類型強制轉(zhuǎn)化的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 循環(huán)隊列詳解及隊列的順序表示和實現(xiàn)

    循環(huán)隊列詳解及隊列的順序表示和實現(xiàn)

    這篇文章主要介紹了循環(huán)隊列詳解及隊列的順序表示和實現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Linux/C++多線程實例學(xué)習(xí)十字路口車輛調(diào)度

    Linux/C++多線程實例學(xué)習(xí)十字路口車輛調(diào)度

    這篇文章主要為大家介紹了Linux/C++多線程實例學(xué)習(xí)十字路口車輛調(diào)度示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • C++關(guān)于樹的定義全面梳理

    C++關(guān)于樹的定義全面梳理

    樹是一種重要的非線性數(shù)據(jù)結(jié)構(gòu),直觀地看,它是數(shù)據(jù)元素(在樹中稱為結(jié)點)按分支關(guān)系組織起來的結(jié)構(gòu),很象自然界中的樹那樣。樹結(jié)構(gòu)在客觀世界中廣泛存在,如人類社會的族譜和各種社會組織機(jī)構(gòu)都可用樹形象表示,本篇介紹二叉樹的遞歸與非遞歸遍歷的方法
    2022-06-06
  • C語言每日練習(xí)之求兩個矩陣的乘積詳解

    C語言每日練習(xí)之求兩個矩陣的乘積詳解

    這篇文章主要介紹了如何求兩個矩陣的乘積,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • C和C++如何實現(xiàn)互相調(diào)用詳解

    C和C++如何實現(xiàn)互相調(diào)用詳解

    在學(xué)習(xí)c++中用到一些古老的c語言庫時,在工作中我們經(jīng)常要使用C和C++混合編程,下面這篇文章主要給大家介紹了關(guān)于C和C++如何實現(xiàn)互相調(diào)用的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • C語言庫函數(shù)qsort及bsearch快速排序算法使用解析

    C語言庫函數(shù)qsort及bsearch快速排序算法使用解析

    這篇文章主要為大家介紹了C語言庫函數(shù)qsort及bsearch快速排序算法的使用示例解析
    2022-02-02
  • c++實現(xiàn)版本層次遍歷功能

    c++實現(xiàn)版本層次遍歷功能

    這篇文章主要介紹了c++實現(xiàn)版本層次遍歷功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • 基于Qt編寫簡易的視頻播放器

    基于Qt編寫簡易的視頻播放器

    這篇文章主要為大家詳細(xì)介紹了如何利用Qt實現(xiàn)編寫簡易的視頻播放器,可以支持pbonon/qmediaplayer/ffmpeg/vlc/mpv等多種內(nèi)核,感興趣的可以學(xué)習(xí)一下
    2022-12-12
  • C語言 TerminateProcess函數(shù)案例詳解

    C語言 TerminateProcess函數(shù)案例詳解

    這篇文章主要介紹了C語言 TerminateProcess函數(shù)案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論