明解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’ : 実引数が多すぎます。」というエラーが発生します。
意味がわからないので調べてみます。
putsは、引数を1つしか受け取れません。
int puts(const char *s);
それに対して、上記の例文だと
“%d”
num %10
の2つを渡しているので怒られています。
ちなみにprintfは、ちょっと特別でフォーマット書式というので沢山引数を渡せます。
printf( 書式文字列, 可変個引数 );
そうだったんですね。ありがとうございます。
これから気を付けるようにしたいと思います。