概述
重定向版
#include <stdio.h>
#define LOCAL
#define INF 1000000
int main()
{
#ifdef LOCAL
//只有定义了符号LOCAL才可以编译#ifdef 至#endif之间的语句
freopen("D:\input.txt","r",stdin);//文件读入
输入重定向
freopen("D:\output.txt","w",stdout);//文件写入
输出重定向
#endif
int x ;
int n = 0;
int sum = 0 ;
int max = -INF;
//一个极小的值
int min = INF;
//一个极大的值
while ( scanf("%d",&x) == 1)
{
sum+= x;
if ( x> max ) max = x;
if( x< min ) min = x;
n++;
printf("%dn",min);
}
printf("%d %d %.3f n", min ,max ,(double) sum/n);
return 0;
}
重定义的部分被定义在#ifdef和#endif中,其含义为:只有定义了LOCAL,才能编译这两个之间的freopen语句,这就很方便了(竞赛中方便检查),当然也可删除LOCAL长定义,可以直接改成标准输入输出。有趣
fopen版
#include <stdio.h>
#define INF 1000000
int main()
{
FILE *fin, *fout;
fin = fopen("D:\input.txt", "rb");
fout = fopen("D:\output.txt", "wb" );
int x ;
int n = 0;
int sum = 0 ;
int max = -INF;
//一个极小的值
int min = INF;
//一个极大的值
while ( fscanf( fin ,"%d",&x) == 1)
{
sum+= x;
if ( x> max ) max = x;
if( x< min ) min = x;
n++;
}
fprintf( fout , "%d %d %.3f n", min ,max ,(double) sum/n);
fclose(fin);
//关闭文件
fclose(fout);
return 0;
}
划重点:除了
FILE *fin, *fout;
fin = fopen("D:\input.txt", "rb");
fout = fopen("D:\output.txt", "wb" );
还要改变输入输出函数,相较于麻烦,稍显繁琐,但可以反复打开并读写文件,这是重定向版,可望不可即滴,嘿嘿
同理,改为标准输入输出只需,改变 fin fout的 赋值,即改变语句为 fin = stdin;fout = stdout;
2022年1月18日16:05:55
最后
以上就是正直裙子为你收集整理的C语言,文件读写重定向版的全部内容,希望文章能够帮你解决C语言,文件读写重定向版所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复