objective-c代码中奇怪的数字变化

时间:2016-07-05 13:28:00

标签: c libc

我有这个代码来分解在控制台输入的数字并返回它们,我对负数做同样的事情,但这是我输入0123的奇怪行为,并且数字转换为{{1} }。我是objective-c和c的新手,所以我需要解释为什么会发生这种情况。 我还注意到,在推出这段代码时,更改实际上发生在83,甚至在主代码块中也没有。 这是我的代码:

scarf function

1 个答案:

答案 0 :(得分:4)

它的行为与记录一致 - 整数常量的前导零前缀表示八进制数,因此0123(在基数8中)仅为83(在基数10中)。

查看scanf的文档,了解这些转化的完整详情。也支持十六进制。如果您正在编写Objective-C代码,我建议您查看具有更好接口的NSString解析例程。