質問させてください。

プロンプトのプログラムを組んでいるのですが、
fopen等で失敗したらprintfで「〜〜ファイルがありません」とかエラーを出したいと思います。

ですがexeを起動してやった場合、return;でmain()を終わらせる前に
printf("〜〜");
scanf(str, "%s");
としているのに、scanfで止まらずプロンプト画面が閉じてしまいます。
Enterを押すまでその場でとめておきたいのですが、何か良い方法はないでしょうか

--備考--
なぜかmain()最後の

printf("全ての動作が正しく終了しました");
scanf(str, "%s");
return;
}
だけはscanfで止まってくれます。
止まらないのは

fp = fopen(〜〜);
if (NULL == fp){
printf("ファイルが無い");
scanf(str, "%s");
return;
}
こんな感じのところです。