本文介绍了与strtol()返回一个不正确的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我这里有一个奇怪的。与strtol,蒂和所有的atoi返回不正确的值当我通过下面的字符串:
I've got a weird one here. strtol, atol and atoi all return an incorrect value when I pass in the following string:
long test = strtol("3087663490", &p, 10);
根据我的调试器返回2147483647。我对这个完全难住了。有什么建议?
According to my debugger it returns 2147483647. I'm completely stumped on this. Any advice?
推荐答案
您值大于多么签署长
键入可以重新present。尝试:
Your value is larger than what a signed long
type can represent. Try:
unsigned long test = strtoul("3087663490", &p, 10);
(你越来越2147483647,因为它是 LONG_MAX
或0x7FFFFFFF的)
(You're getting 2147483647 since it is LONG_MAX
or 0x7FFFFFFF)
这篇关于与strtol()返回一个不正确的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!