我是靠谱客的博主 正直裙子,这篇文章主要介绍C语言,文件读写重定向版,现在分享给大家,希望可以做个参考。

重定向版

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#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版

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#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语言内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部