首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sstream将std::string转换为int

使用sstream将std::string转换为int
EN

Stack Overflow用户
提问于 2013-05-08 15:11:12
回答 1查看 144关注 0票数 1

我正在尝试将任意长度的字符串转换为int类型,但到目前为止,它只适用于有限长度的字符串。到目前为止的代码:

代码语言:javascript
复制
long long convertToInt (std::string x){
   long long number;
   std::istringstream ss(x);
   ss >> number;
   return number;}

对于x=100000000000000000000000001,该函数返回0。有人能解释一下为什么吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-08 15:16:08

编译器提供的内置整数类型只能保证能够存储特定大小的数字。看起来你的数字比这还大。您可能会发现C++程序正在报告错误-尝试...

代码语言:javascript
复制
if (ss >> number)
    return number;
throw std::runtime_error("conversion of string to int failed");

...or任何你想要的其他错误处理。

如果你必须使用更大的数字,你可以尝试double,或者如果这不适合你的需要,那么可以看看像GMP这样的“任意精度”库-你会发现很多关于处理大数字的堆栈溢出问题,答案是暗示,对比和说明GMP和替代方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16434726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档