我有这个代码来分解在控制台输入的数字并返回它们,我对负数做同样的事情,但这是我输入0123
的奇怪行为,并且数字转换为{{1} }。我是objective-c和c的新手,所以我需要解释为什么会发生这种情况。
我还注意到,在推出这段代码时,更改实际上发生在83
,甚至在主代码块中也没有。
这是我的代码:
scarf function
答案 0 :(得分:4)
它的行为与记录一致 - 整数常量的前导零前缀表示八进制数,因此0123
(在基数8中)仅为83
(在基数10中)。
查看scanf
的文档,了解这些转化的完整详情。也支持十六进制。如果您正在编写Objective-C代码,我建议您查看具有更好接口的NSString
解析例程。