前端之家收集整理的这篇文章主要介绍了
Strtol()和atol()不会转换大于9位的字符串,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在处理需要将字符串转换为长数字的应用程序时,atol()和strtol()无法正确转换任何大于9位的字符串.
strtol会提示一个与字符串无关的数字,而atol会产生一个负数(溢出).
知道为什么会这样,我该如何解决?
这可能与您平台上的长度大小有关.在32位平台上,适合长的最大值是2147483647(2 ^ 31-1),所以任何大于它的东西都不适合.使用long long和strtoll代替.
原文链接:https://www.f2er.com/c/119810.html