C++ std::stoll() 函数

17 Mar 2025 | 4 分钟阅读

在本文中,您将学习 C++ 中 std::stoll 函数的语法和示例。

什么是 std::stoll()?

C++ 标准模板库 (STL) 包含 std::stoll() 函数,该函数专门用于将字符串转换为 long long 类型数字。在处理可能超出传统 long 整数范围的巨大数值时,它非常有用。std::stoll() 函数可以将字符串转换为 long long 整数。虽然它返回的是 long long 整数而不是 std::stol(),但它的功能完全相同。

语法

它具有以下语法:

long long std::stoll(const std::string& str, size_t* pos = 0, int base = 10);

str:需要转换为扩展 long 整数的文本。

pos:字符串中第一个未转换字符的索引,存储为指向 size_t 对象的指针。如果不需要,此可选参数可以设置为 nullptr。

base:转换的数值基数。默认值为 10。

返回值:该函数从输入字符串中提取数值并返回 long long 整数作为结果。

异常:std::stol() 类似,如果转换无法完成或输入字符串中有任何无效字符,该函数会引发异常。可能的异常是,如果无法完成转换,则为 std::invalid_argument;如果转换后的值过大而无法表示,则为 std::out_of_range

用例

  1. 管理大数值
    • 当处理可能超出普通 long 整数可表示范围的大数值时。
  2. 数据处理
    • 数据处理在接收或存储字符串格式的数值数据并需要在计算发生之前进行转换时很有帮助。
  3. 数据验证
    • 数据验证是确认来自用户或从其他源读取的数据是准确的 long long 整数的过程。

示例程序 1

让我们举一个例子来说明 C++ 中 std::stoll 函数的用法。

输出

std::stoll() Function in C++

示例程序 2

让我们再举一个例子来说明 C++ 中 std::stoll 函数的用法。

输出

std::stoll() Function in C++

说明

  1. 打开文件
    • 程序尝试读取名为 "numeric_data.txt" 的文件。
    • 如果文件无法打开,则向标准错误打印一条反映失败的错误消息。
    • 之后,应用程序通过返回错误代码 1 来指示打开文件时出现问题。
  2. 从文档中读取文本
    • 程序将用于保存字符串的空向量 numericStrings 初始化。
    • 之后,它开始循环读取已打开文件(inputFile)中的每一行。
    • 它将内容保存到 currentLine 字符串中。
    • 接下来,numericStrings 向量会扩展以包含 currentLine
    • 此操作会重复进行,直到文件中没有更多行。
  3. 关闭文件
    • 在读取所有行后,使用 close() 命令关闭文件。
  4. 处理数值字符串并求和
    • 程序初始化一个名为 sum 的变量,用于跟踪转换值的总和。
    • 迭代 numericStrings 中的每个字符串。
    • 它尝试使用 std::stoll 将每个字符串转换为 long long。
    • 如果转换成功,转换后的值将添加到总和中。
    • 如果发生异常(无效参数或超出范围),它会捕获异常,打印错误消息,然后继续处理下一个字符串。
  5. 生成总和
    • 之后,程序将转换值的总和打印到标准输出。