我是靠谱客的博主 正直裙子,最近开发中收集的这篇文章主要介绍C语言,文件读写重定向版,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

重定向版

#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语言,文件读写重定向版所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部