|
平时的训练为了方便大家都是从键盘上读入数据,将结果输出到屏幕上,所以我们一般直接cin,cout。但是标准考试的时候为了电脑自己评测需要,要求选手要使用文件输入输出,一般的做法是使用cstdio库里面的freopen函数。
具体做法如下:以NOIP2017初中组第一题,成绩score为例,平时我们写的程序如下:
- #include <iostream>
- using namespace std;
- int s,a,b,c;
- int main()
- {
- cin>>a>>b>>c;
- s=a*0.5+b*0.3+c*0.2;
- cout<<s;
- return 0;
- }
复制代码
但这样交上去考试肯定得0分,因为题目有要求,
改动如下:
1、在头文件处包含cstdio。
2、main函数头两句写上freopen("文件名","r",stdin);freopen("文件名","w",stdout);就可以了。
- #include <iostream>
- #include <cstdio> ///freopen 所在的库
- using namespace std;
- int s,a,b,c;
- int main()
- {
- freopen("score.in","r",stdin); ///从文件score.in里面读入数据
- freopen("score.out","w",stdout);///向文件score.out里面写数据
- cin>>a>>b>>c;
- s=a*0.5+b*0.3+c*0.2;
- cout<<s;
- return 0;
- }
复制代码
调试的时候我们注释到fropen两句,当作键盘输入屏幕输出来调试,等到结果正确,去掉注释,再编译一下,没有问题在保存上交。
注意,有同学freopen里面r,w,stdio,stdout等还会写错,这就无语了!
|
|