scanf関数について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
よろしくおねがいします!

scanf関数について

#1

投稿記事 by よろしくおねがいします! » 12年前

#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
と表示されてしまいます。
プログラム自体に問題はないのでしょうか?

usao

Re: scanf関数について

#2

投稿記事 by usao » 12年前

1,2
と入力すれば所望の動作をしませんか?

よろしくおねがいします!

Re: scanf関数について

#3

投稿記事 by よろしくおねがいします! » 12年前

ありがとうございます!
んー・・・しないですかね・・・

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: scanf関数について

#4

投稿記事 by softya(ソフト屋) » 12年前

こちらで実行すると1,2の入力すれば正しく表示されます。
1 2 ではダメです。

それとb=0.000はint型では無理ですね。
> 書籍などのガイドライン
どこか勘違いされていると思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

yoko
記事: 24
登録日時: 15年前

Re: scanf関数について

#5

投稿記事 by yoko » 12年前

1 2
の入力の場合は
scanf("%d%d", &x, &y);
とする必要があります。

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

閉鎖

“C言語何でも質問掲示板” へ戻る