我们在进行代码调试的时候常常会遇到什么在控制台输入后程序运行正常,但是用 freopen 进行文件输入后就没有输出了,程序也一直不结束,下面提供有可能可行的解决方案
举个例子,我们在代码开头部分有这样一行代码
int main () {
freopen ("test.in", "r", stdin);
int n;
scanf ("%d", &n);
printf ("%d", n);
return 0;
}
然后程序迟迟没有输出(具体是为啥不清楚,可能是因为文件损坏),解决方案如下
1. 打开文件命后缀
点击文件资源管理器上面的查看(以 win10 为例)
点击打开文件扩展名
2. 重新新建输入文件
把之前文件内的文本复制出来,注意只复制文本
删掉之前的文件,并新建一个以 freopen 中用到的文件名为名的文件名,如果有这样的提示,确定就好了
进入文件属性,更改打开方式,注意:一定选写字板 ,选记事本可能会再次损坏(我也不知道为什么)
更改好了之后再点开文件,将数据复制进去
3. 完成
完成后可以就用文章最上面的那段代码进行验证,看文件输入输出是否正常