warning C4020: ‘puts’ : 実引数が多すぎます。

明解C言語のソースで


int main (void)
{
 int num;

do {
 printf("非負の整数を入力して下さい:");
 scanf("%d",&num);
 if ( num < 0)

puts("\a負の数を入力しないでください。");
 } while (num < 0);

puts("その数を逆から読むと");
 do {
 puts("%d", num %10);
 num=num/10;
 } while (num >0 );
 puts("です。");

return 0;
}

このようなものがあります。

15行目の puts は本来 printf なんですが置き換えてみました。

そしたら「warning C4020: ‘puts’ : 実引数が多すぎます。」というエラーが発生します。

意味がわからないので調べてみます。

2 thoughts on “warning C4020: ‘puts’ : 実引数が多すぎます。

  1. putsは、引数を1つしか受け取れません。
    int puts(const char *s);
    それに対して、上記の例文だと
    “%d”
    num %10
    の2つを渡しているので怒られています。
    ちなみにprintfは、ちょっと特別でフォーマット書式というので沢山引数を渡せます。
    printf( 書式文字列, 可変個引数 );

    • そうだったんですね。ありがとうございます。

      これから気を付けるようにしたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*