You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中std::stoi转换CSV字段时抛出std::out_of_range异常原因

问题分析:std::stoi抛出std::out_of_range异常的原因

核心原因是**std::stoi的转换目标类型是int,而你要转换的数值3222947947超出了int类型的取值范围**。

  • 标准C++中,int的典型取值范围是 -2147483648 到 2147483647(即-231到231-1),这是大多数主流平台(如x86、x64)的默认实现。
  • 你要转换的数值3222947947远大于int的最大值2147483647,触发了std::stoi的范围检查逻辑,因此抛出std::out_of_range异常。

解决方法

如果业务场景需要处理这类大数值,可改用支持更大范围的整数转换函数:

  • 使用std::stol转换为long类型(x64平台下通常支持-9223372036854775808到9223372036854775807的范围)
  • 使用std::stoll转换为long long类型(固定支持-9223372036854775808到9223372036854775807的范围)

修改后的代码示例:

case 0: customer.id = std::stoll(value); break;

内容的提问来源于stack exchange,提问作者Nicolas REY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 00:52:09