温馨提示×

C++ stoll对溢出是如何处理的

c++
小樊
130
2024-07-08 17:27:14
栏目: 编程语言

在C++中,std::stoll函数用于将字符串转换为长整型数值。当使用std::stoll进行转换时,如果字符串表示的数值超出了长整型的范围,即溢出了,std::out_of_range异常会被抛出。

例如,如果尝试将一个超出long long的范围的字符串转换为长整型数值,会抛出std::out_of_range异常:

#include <iostream>
#include <string>

int main() {
    std::string str = "12345678901234567890"; // 超出long long范围
    try {
        long long num = std::stoll(str);
        std::cout << "Number: " << num << std::endl;
    } catch (const std::out_of_range& e) {
        std::cerr << "Error: " << e.what() << std::endl;
    }
    
    return 0;
}

在上面的代码中,由于字符串表示的数值超出了long long的范围,std::out_of_range异常会被捕获并输出错误信息。因此,要注意在使用std::stoll进行字符串转换时,确保输入的字符串在目标数据类型的范围内。

0