下のプログラムは文字列や数値をカンマやスペースで区切って入力し、それを出力するプログラムなのですが、10行目の「%c」がどういう意味か分かりません。%cは1文字として出力するもので、(アスタリスク)は掛け算の意味ですが、「%*c」のような使い方はしないと思います。
試しに、10行目のscanf内の"%*c%c,%c"を、%*cを消して"%c,%c"のみにして実行したら、実行結果に変な数値が出力されたので、%*cに何らかの役割があることはわかります。しかし検索してもわかりません。%*cとは何でしょうか?
↓ プログラム
C
1#include <stdio.h> 2int main(void) 3{ 4 int x,y,u,v; 5 char c1,c2,c4,c5,c6; 6 7 printf("0≦x≦100のxと、y≦0 or y≧100のyをカンマで区切って入力>>>\n"); 8 scanf("%d,%d",&x,&y); 9 printf("英大文字c1と英小文字c2をカンマで区切って入力>>>\n"); 10 scanf("%*c%c,%c",&c1,&c2); 11 printf("x=%d\t",x); 12 printf("y=%d\t",y); 13 printf("c1=%c\t",c1); 14 printf("c2=%c\n\n",c2); 15 16 if(x>=0 && x<=100) printf("xは0以上100以下の整数\t"); 17 if(y<=0 || y>100) printf("yは0以下または100以上の整数\n"); 18 if(c1>='A' && c1<='Z') printf("入力文字c1は英大文字\t"); 19 if(c2>='a' && c2<='z') printf("入力文字c2は英小文字\n\n"); 20 21 printf("数値2つ(u,v)と文字3文字(c4,c5,c6)をスペースで区切って入力>>>\n"); 22 scanf("%d %d %c %c %c",&u,&v,&c4,&c5,&c6); 23 printf("u=%d\t",u); 24 printf("v=%d\t",v); 25 printf("c4=%c\t",c4); 26 printf("c5=%c\t",c5); 27 printf("c6=%c\n",c6); 28} 29
↓ 上のプログラムの実行結果
C
10≦x≦100のxと、y≦0 or y≧100のyをカンマで区切って入力>>> 280,500 3英大文字c1と英小文字c2をカンマで区切って入力>>> 4R,i 5x=80 y=500 c1=R c2=i 6 7xは0以上100以下の整数 yは0以下または100以上の整数 8入力文字c1は英大文字 入力文字c2は英小文字 9 10数値2つ(u,v)と文字3文字(c4,c5,c6)をスペースで区切って入力>>> 11u=1 v=2 c4=a c5=b c6=c 12
↓ 10行目のscanf内の"%*c%c,%c"を"%c,%c"のみにしたときの実行結果
C
10≦x≦100のxと、y≦0 or y≧100のyをカンマで区切って入力>>> 280,500 3英大文字c1と英小文字c2をカンマで区切って入力>>> 4R,i 5x=80 y=500 c1= 6 c2=@ 7 8xは0以上100以下の整数 yは0以下または100以上の整数 9数値2つ(u,v)と文字3文字(c4,c5,c6)をスペースで区切って入力>>> 10u=0 v=4201216 c4=. c5=[ c6= 11
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/05/17 01:37
2019/05/17 02:49
退会済みユーザー
2019/05/17 22:59