http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/

返回值

成功后,函数将转换后的整数作为int值返回。
如果无法执行有效的转换,则返回零值。
如果正确的值超出可表示值的范围,则返回INT_MAX或INT_MIN。

所以我在atoi("poop")atoi("0")atoi("0000000")之间有何区别

是的,如果我得到0结果,我可以循环并检查所有零,但是没有更好的方法吗?

注意:我使用ANSI C89

最佳答案

这就是atoi有时被认为不安全的原因之一。请改用strtol / strtoul。如果有,请使用 strtonum
函数atoi比您想象的要危险的多。 The POSIX standard说:

C99标准还说:

关于c - atoi-如何识别零和误差之间的差异?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8871711/

10-11 18:13