【发布时间】:2012-01-15 17:25:18
【问题描述】:
http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/
返回值
成功时,函数将转换后的整数作为int 值返回。
如果无法执行有效转换,则返回零值。
如果正确值超出可表示值的范围,则返回 INT_MAX 或 INT_MIN。
那么我在atoi("poop") 和atoi("0") 和atoi("0000000") 之间有什么区别
是的,我可以循环并检查所有零,以防我得到 0 结果,但没有更好的方法吗?
注意:我使用的是 ANSI C89
【问题讨论】:
-
cplusplus.com is wrong about
atoi,它根本不检测错误。不要相信那个网站。 -
当正确值超出范围时,C89、C99 和 C11 标准对
atoi()返回的值只字未提。 C++11 标准说得更少(它在两个表中列出了atoi,仅此而已!)。 cplusplus.com 的声明本质上是一厢情愿和/或常见的实现——没有任何标准保证。