0

Objective-C を介して scanf カウントダウンを行っているため、プログラムは入力した数値からカウントダウンします。ただし、コードには次のような迷惑なセマンティック エラーがあります: データ引数はフォーマット文字列で使用されていません。また、プログラムはカウントダウンしません。数値を入力すると、出力がゼロとして表示されます。

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        int x,number;

        NSLog(@"please enter a number:");
        scanf("i", &number);
        for (x = number;  x>=0; x--)
            NSLog(@"%i",x);
    }
    return 0;
}
4

1 に答える 1

4

のフォーマット文字列では%iなく、を渡す必要があります。iscanf

を渡すiと、書式文字列に書式指定子が含まれていないため、セマンティック アナライザーで警告が生成されます。これが、変数に何も入力されない理由でもありnumber、カウントダウンも発生しません。

于 2013-03-28T00:55:37.550 に答える