ページ 11

scanf関数について

Posted: 2013年4月23日(火) 13:14
by よろしくおねがいします!
#include <stdio.h>
int main(void)
{
int x,y;
printf("a,b>");
scanf("%d,%d", &x, &y);
printf("a=%7d\n",x);
printf("b=%7d\n",y);
return 0;
}
このようなプログラムなんですが、一つのscanfで二つ以上の変数を入力させることができません!
たとえば、1 2と入力しても
a=1
b=0
と表示されてしまいます。
プログラム自体に問題はないのでしょうか?

Re: scanf関数について

Posted: 2013年4月23日(火) 13:43
by usao
1,2
と入力すれば所望の動作をしませんか?

Re: scanf関数について

Posted: 2013年4月23日(火) 13:55
by よろしくおねがいします!
ありがとうございます!
んー・・・しないですかね・・・

一応書籍などのガイドラインに沿ったつもりなんですが。
気になったのは、
a=1
b=2
と入力したときの結果が
a=1
b=0.000と表示されたことです。
int型なのに小数点がでることはあるんでしょうか?

Re: scanf関数について

Posted: 2013年4月23日(火) 14:01
by softya(ソフト屋)
こちらで実行すると1,2の入力すれば正しく表示されます。
1 2 ではダメです。

それとb=0.000はint型では無理ですね。
> 書籍などのガイドライン
どこか勘違いされていると思います。

Re: scanf関数について

Posted: 2013年4月23日(火) 22:49
by yoko
1 2
の入力の場合は
scanf("%d%d", &x, &y);
とする必要があります。

scanf("%d,%d", &x, &y);
では、他の方が回答されている通り、
間に,を入れる
つまり
1,2
でないと正しく動作しません。