プロが教えるわが家の防犯対策術!

C言語のプログラムを書いているときscanf_sを使用した際に本来1回入力すればよいところを2回入力を要求されます。
#include <stdio.h>
#include <math.h>
#define scanf scanf_s
int main(void) {
int x = 0;
scanf("%d\n",&x);
printf("%d\n",x);
return 0;
}
このプログラムの実行結果が本来はキーボードから好きな整数型を入力しEnterを押すと入力した値が表示されるはずが、最初に値を入力しEnterを押すと再度入力を要求され値を入力しEnterを押すと最初に入力した値が表示されるといった処理になってしまいます。
使用ソフトはVisualStudio2015Communityです。
また、scanfを使うとエラーになってしまうのでscanf_sを使用しています。
この謎の2回目の入力要求はなんでしょうか?
よろしくお願いします。

A 回答 (2件)

scanf("%d\n",&x);の"%d\n"から \n を取り去ってください。

    • good
    • 6

scanf の書式が


"%d\n"
になってるからじゃないかなぁ.

どういう意図で \n を付けたのかは知らんけど....
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています