system("pause")在使用freopen时失效

这个问题一度让我以为VS出了bug,并怀疑人生。

overstack上有人解释是由于重定向导致在System(“pause”);执行的时候出于某些原因,有字符从文件流中输入,导致程序终止。
于是不求甚解的我,直接在System(“pause”);前加了一句

    //重定向回控制台
    freopen_s(&stream,"con", "r", stdin);

将标准输入流重定向回控制台,这样System(“pause”);又可以继续发挥作用了。

哈哈!

猜你喜欢

转载自blog.csdn.net/renjiewen1995/article/details/78172167