华师一附中OI组
标题:
文件输入输出技术
[打印本页]
作者:
admin
时间:
2019-11-14 11:28
标题:
文件输入输出技术
平时的训练为了方便大家都是从键盘上读入数据,将结果输出到屏幕上,所以我们一般直接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等还会写错,这就无语了!
作者:
admin
时间:
2019-11-14 11:35
注意:
考试时候的文件名都是小写,Linux系统是区分大小写的,不要写错;
读文件是in, r ,stdin 写文件是 out, w, stdout
欢迎光临 华师一附中OI组 (http://hsyit.cn/)
Powered by Discuz! X3.2