0
私はこのコードをコンソールに入力した数字を分割して返しますが、負の数値でも同じですが、ここでは0123
と入力して数字が変換されます83
。私は客観的に新しいと思います。なぜなら、なぜこのようなことが起こったのかという説明が必要です。 私はまた、このコードをデビューすることで、実際にはメインコードブロックでさえもscarf function
で変更が行われていることに気付きました。ここ は私のコードである:目的コードで奇妙な番号の変更
//
// 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を使う上で良いことだということです:http://stackoverflow.com/questions/3220823/using-scanf-with-nsstrings –
明確にするには、これだけが起こります'%i'フォーマット指定子で置き換えます。 '%d'では先行ゼロは無視され、10進数が変換されます。 –