0
我有这个代码分解在控制台输入的数字并返回它们,我对负数做同样的操作,但这里是奇怪的行为,我输入0123
并将数字转换为83
。我是objective-c和c的新手,所以我需要一些解释为什么发生这种情况。 我也注意到从推出这个代码,实际上发生在scarf function
甚至没有在主代码块的变化。 这是我的代码:奇怪的数字更改在目标c代码
//
// main.m
// ex-5.9
//
// Created by george on 05/07/2016.
// Copyright © 2016 george. All rights reserved.
// Program to reverse the digits of a number
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
int number, right_digit;
NSLog(@"Enter your number.");
scanf("%i", &number);
if(number < 0){
number = ABS(number);
do {
right_digit = number % 10;
NSLog(@"%i", right_digit);
number /= 10;
} while (number != 0);
NSLog(@"-");
}else{
do {
right_digit = number % 10;
NSLog(@"%i", right_digit);
number /= 10;
} while (number != 0);
}
}
return 0;
}
输入得更快。 :)所有我会补充的是,下面的链接是使用scanf和NSString一个很好的SO:http://stackoverflow.com/questions/3220823/using-scanf-with-nsstrings –
要清楚,这只会发生用'%i'格式说明符。使用'%d'时,前导零将被忽略,并且十进制数被转换。 –