0

今日、私はこのプログラムを書いていますが、2 つの問題がありました。これは、OS X プロジェクトの Objective-C の完全なコードです。

#import <Foundation/Foundation.h>


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

    @autoreleasepool {

        int numx;
        int quadr;


        NSLog(@"Inserisci un numero");
        scanf("%i", &numx);

        quadr = numx * numx;

        NSLog(@"Il quadrato del tuo numero %i è: ", numx, quadr);


    }

    return 0;
}

2 番目の NSLog は次のエラーを報告します: データ引数はフォーマット文字列で使用されていません。なぜこの種のエラーが発生するのですか? このエラーをどのように解決できますか? さらに、プログラムの実行時に、出力が「Inserisci un numero」と書かれた後、予期せず終了します。数の要求を挿入すると、プログラムは 2 番目の NSLog から要求されたように二乗された数を表示しません。なぜ私はこの中断を抱えているのですか?お願い助けて。私は何が起こっているのかを理解する必要があります。

4

1 に答える 1

0

その行に表示される警告は正しいです。

渡す quadr パラメーターは、フォーマット文字列では使用されません。渡す各パラメータは、フォーマット文字列に % 相当する必要があります。

以下のコード サンプルの適合行に追加のパラメーターを指定します。

    NSLog(@"Il quadrato del tuo numero %i è %i", numx, quadr);
于 2013-05-07T14:19:10.413 に答える