当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。