本文主要是介绍利用文件重定向提高调试效率(已阅加重点划),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
编程得到正确结果前,往往需要多次运行程序,每次运行都需要花费不少的时间从键盘输入数据。每次输入的数据都是相同的时,会给人的心理带来不爽的感觉,并造成时间上的浪费。无论平时练习还是ACM竞赛实战,这些都是可以避免的。方法是,运用重定向。
用下面的形式调用函数freopen()会将标准输入stdin重定向到文件input.txt(这个名字可以自己定义)。
输入输出重定向例:
文件名为:r.txt
输入重定向到文件r.txt:freopen("r.txt","r",stdin);将文件r.txt中的数据读取
输出到文件:freopen("r.txt","w",stdout);将输出的结果写入到指定文件
参数说明:(文件名,方式(r为读取,w为写入),照打就ok了);
若文件名出写:"CON",为重定向回控制台
- freopen("input.txt","r",stdin); //设置输入和输出文件
- #include<stdio.h>
- int main()
- {
- freopen("input.txt","r",stdin); //只加这一句输入将被重定向到文件input.txt
- int a,b;
- scanf("%d%d",&a,&b);
- printf("%d\n",a+b);
- return 0;
- }
需要注意的是, 调试通过的程序,千万不要直接提交到OJ平台上去 。如果竞赛中这样做了,罚你的20分钟不要算到我的头上。提交的程序要把输入重定向的一行删除,这样才算是符合要求的,可以获得AC的程序 (提交oj时要将加入的重定向一行删除) 。
除了删除那一行,还有一种简单的做法是,提交前将这一行前加上注释符"//",效果是一样的。
- #include<stdio.h>
- int main()
- {
- //freopen("input.txt","r",stdin); //只加这一句输入将被重定向到文件input.txt
- int a,b;
- scanf("%d%d",&a,&b);
- printf("%d\n",a+b);
- return 0;
- }
这篇关于利用文件重定向提高调试效率(已阅加重点划)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!