1. ホーム
  2. c

[解決済み] format [-Wformat-extra-args] の引数が多すぎる。

2022-02-27 18:49:37

質問

学校のプロジェクトで、この警告に悩まされ続けています。 私のコードに何か問題があるのでしょうか?

fprintf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%d\n", Item[i]->ID, Item[i]->Date, Item[i]->Adress,
                                       Item[i]->Street number, Item[i]->Postal Code,
                                       Item[i]->City, Item[i]->Phone,Item[i]->Name,
                                       Item[i]->Price);

また、もう一つ警告があります。

警告: フォーマット '%d' は 'int' 型の引数を予期していますが、引数 10 は 'char *' 型である [-Wformat] 。

どうしたらいいのかわからない

どのように解決するのですか?

あなたの fprintf の呼び出しは8つの書式指定子を持っていますが、これらを埋めるためにさらに9つの引数を渡しています。

8番目の書式指定子は %d これに対応する引数は Item[i]->Name . 警告は、以下のことを伝えています。 Item[i]->Name は文字列なので、符号付き整数に変換できない(してはいけない)のです。

おそらく Item[i]->Price は、タイプ int を追加する必要があります。 %s を書式文字列に追加します。 %d ) または文字列引数の一つを削除してください。