- 締切済み
scanfの謎
C言語の以下のプログラムがありまして、 #include <stdio.h> main() { int i; scanf("%d ", &i);printf("d=%d\n", i); } これを実行すると、 1 2 d=1 のように、入力を2回受け付けてしまいます。 一体なんでこのようなことが起こるのでしょうか?教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- bluecampus
- ベストアンサー率66% (138/209)
回答No.2
下の参考URLがわかりやすいでしょう。
noname#77845
回答No.1
scanf("%d ", &i);printf("d=%d\n", i); の"%d "を"%d"に変更すればOK。(スペースの除去)
質問者
お礼
早い回答ありがとうございます。 言うのを忘れていましたが・・・。 %dの後ろに空白があるからいけないっていうことはわかっています。 そうするとなんで入力を2回受け付けてしまうかを知りたいのです。
お礼
ありがとうございます。 リンク先を読ませていただいて、理解することが出来ました。