當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ std::stol()、std::stoll()用法及代碼示例


  1. std::stol():此函數將在函數調用中作為參數提供的字符串轉換為long int。它解析str並將其內容解釋為指定基數的整數,並將其作為long int類型的值返回。

    用法:

    long int stol (const string&  str, size_t* idx = 0, int base = 10)

    參數:該函數接受三個參數,如下所述:

    • str:它指定一個以整數表示的字符串對象。
    • idx:它指定一個指向size_t類型的對象的指針,該指針的值由函數設置為數值後str中下一個字符的位置。該參數也可以是空指針,在這種情況下不使用它。
    • base:它指定數字基來確定解釋字符的數字係統。如果基數為0,則要使用的基數由序列中的格式確定。預設值為10。

    返回值:該函數將轉換後的整數返回為long int類型的值。


    // CPP code for illustration 
    // of stol() function. 
    #include <bits/stdc++.h> 
    using namespace std; 
      
    int main() 
    { 
      
        // converting decimal number. 
        string dec_num = "9876543210"; 
        cout << "dec_num = " <<  
        stol(dec_num, nullptr, 10) << "\n"; 
      
        // converting hexadecimal number. 
        string hex_num = "FFFFFF"; 
        cout << "hex_num = " <<  
        stol(hex_num, nullptr, 16) << "\n"; 
      
        // converting binary number. 
        string binary_num = "1111111"; 
        cout << "binary_num = " <<  
        stol(binary_num, nullptr, 2) << "\n"; 
      
        return 0; 
    }
    輸出:
    dec_num = 9876543210
    hex_num = 16777215
    binary_num = 127
    
  2. std::stoll():此函數將在函數調用中作為參數提供的字符串轉換為long long int。它解析str並將其內容解釋為指定基數的整數,並將其作為long long int類型的值返回。

    用法:

    long long int stoll (const string&  str, size_t* idx = 0, int base = 10)
      參數:該函數接受三個參數,如下所述:
    • str:此參數使用整數表示指定String對象。
    • idx:此參數指定指向size_t類型的對象的指針,該對象的值由函數設置為數值後str中下一個字符的位置。此參數也可以是空指針,在這種情況下,將不使用該參數。
    • base:此參數指定“數字基數”,以確定用於解釋字符的數字係統。如果基數為0,則它​​使用的基數由序列中的格式確定。默認基數為10。

    返回值:該函數將轉換後的整數返回為long long int類型的值。

    // CPP code for illustration 
    // of stoll() function. 
    #include <bits/stdc++.h> 
    using namespace std; 
      
    int main() 
    { 
      
        // converting decimal number. 
        string dec_num = "9876543210"; 
        cout << "dec_num = " <<  
        stoll(dec_num, nullptr, 10) << "\n "; 
      
             
        // converting hexadecimal number. 
        string hex_num = "FFFFFF"; 
        cout << "hex_num = " <<  
        stoll(hex_num, nullptr, 16) << "\n"; 
      
        // converting binary number. 
        string binary_num = "1111111"; 
        cout << "binary_num = " << 
        stoll(binary_num, nullptr, 2) << "\n"; 
      
            return 0; 
    }
    輸出:
    dec_num = 9876543210
     hex_num = 16777215
    binary_num = 127
    

錯誤和異常:如果無法執行任何轉換,則會引發invalid_argument異常。如果讀取的值超出可表示值範圍的整數,則拋出invalid_argument或out_of_range異常。

// CPP code for illustration of stoll() 
// function when invalid_argument  
// exception is thrown. 
#include <bits/stdc++.h> 
using namespace std; 
   
int main() { 
       
    // An invalid input string that has no 
    // integer part. 
    string invalid_num = "abcf$#@de"; 
       
    // stoll() throws invalid_argument exception 
    // when conversion process fails. 
    try{ 
        cout << stoll(invalid_num) << "\n"; 
    } 
       
    // catch invalid_argument exception. 
    catch(const std::invalid_argument){ 
        cerr << "Invalid argument" << "\n"; 
    } 
    return 0; 
}

輸出:

Runtime Errors:
Invalid argument


相關用法


注:本文由純淨天空篩選整理自nik1996大神的英文原創作品 std::stol() and std::stoll() functions in C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。