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

NppExecを使って、VSとMinGWどちらもコンパイルはできています
ただ、Scanf文を入れると何か反応がおかしいです

int main(int argc, char *argv[])
{
int a;

printf("hello\n");
scanf("%d", &a);
return 0;
}
コンパイルした結果

---EXEC---------------------------
test
hello
<<< Process finished. (Exit code 0)
何故か、scanf とprintf が逆になります。
どうすればいい?

A 回答 (2件)

たぶんprintfとscanfが逆に動いているわけではなく、全ての処理が完了してからまとめて表示されるのでそのように見えるだけと思います。


NppExecが標準入出力を取得している都合でそうなっているのではないか…と。
ためしに、printf("hello\n"); の次の行に fflush(stdout); といれてみてください。


#include <stdio.h>
int main(void) {
int a;

printf("hello\n");
fflush(stdout);

scanf("%d", &a);
printf("a = %d\n", a);

return 0;
}

//参考:http://www9.plala.or.jp/sgwr-t/lib/fflush.html
    • good
    • 1

Notepad++ を使わない.

    • good
    • 1

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