web-dev-qa-db-ja.com

長い符号なし整数をスキャンするためのフォーマット指定子

このコードスニペットを使用して、2つの変数を入力として取得しようとしています:

unsigned int i;

unsigned long int j;

scanf("%u",i);

scanf("%lu",j);

しかし、これは次の警告を引き起こします:-

警告:形式 '%u'はタイプ 'unsigned int *'の引数が必要ですが、引数2のタイプは 'unsigned int'です[-Wformat]警告:形式 '%lu'はタイプ 'long unsigned int *'の引数が必要ですが、引数2の型は 'long unsigned int'です[-Wformat]誰かがここで何が起こっているのか説明してくれませんか?

11
user1391362

scanfpointersを出力パラメーターに取るので、先頭に&を追加する必要があります。それ以外の場合は、それらに書き込むことができません。

scanf("%lu", &i);
23
md5