关于acm程序用到文件的问题

留给自己看看的,这个博客就是记录自己的心得与所收获的地方。

//#define LOCAL
#include "stdio.h"
#define INF 1000000000

int main()
{
    //以下是重定向版,用来比较方便

//如果用红色部分,所有蓝色部分就不要用了
//#ifdef LOCAL
// freopen("1.in","r",stdin);
//    freopen("1.out","w",stdout);
//#endif
//以下是fopen版,有点麻烦,如果要改成读写标准输入输出,要将fin=stdin,fout=stdout
    FILE *fin,*fout;
    fin=fopen("data.in","r");//如果改成rb,以下改成wb,则输出地文件后会有一个小黑矩形,按现在这种格式
    //的话不会有那个小黑矩形,可能是因为rb和wb是读打开和写生成是对二进制文件的 ,而r和w是针对文本文
    //件的
    fout=fopen("data.out","w");
    fin=stdin;
    fout=stdout;
 int x;
 int n=0,min=INF,max=-INF,s=0;
 while(fscanf(fin,"%d",&x)==1)
 {
  s+=x;
  if(x<min)
   min=x;
  if(x>max)
   max=x;
 n++;
 }
 fprintf(fout,"%d %d %.3lf\n",min,max,(double)s/n);
 //fclose(fin);
 //fclose(fout);
 //getchar();//不要用这个东东喔
 return 0;
}

来自一位超级大牛的书

原文地址:https://www.cnblogs.com/Shirlies/p/2312435.html