C例程:文件读写 拷贝 标准输入输出等
来源:互联网 发布:杨氏弹性模量实验数据 编辑:程序博客网 时间:2024/06/05 06:11
#include <stdio.h>/*cat : concatenate files, version 1*/main(int argc, char *argv[]){FILE *fp;void filecopy(FILE *, FILE *);if(argc == 1)/*no args; copy standard input*/filecopy(stdin, stdout);elsewhile(--argc > 0)if((fp = fopen(*++argv, "r")) == NULL){printf("cat : can't open %s\n", * argv);return 1;}else{filecopy(fp, stdout);fclose(fp);}return 0;}/* filecopy : copy file ifp to file ofp*/void filecopy(FILE *ifp, FILE *ofp){int c;while((c = getc(ifp)) != EOF){putc(c, ofp);}}
其中,main函数中的第二行代码void filecopy(FILE *, FILE *);是对filecopy函数的声明。也可以放在main函数的前面。但其作用域有所不同。在main函数外面声明的函数全局可用,在main函数里面声明的函数只在main函数内部可用。
下面对以上程序进行了一些改进,加入了对出错情况的处理。
#include <stdio.h>/*cat : concatenate files, version 2*/main(int argc, char *argv[]){void filecopy(FILE *, FILE *);FILE *fp;char *prog = argv[0];/*program name for errors*/if(argc == 1)/*no args; copy standard input*/filecopy(stdin, stdout);else{while(--argc > 0)if((fp = fopen(*++argv, "r")) == NULL){fprintf(stderr, "%s : can't open %s\n", prog, * argv);exit( 1 );}else{filecopy(fp, stdout);fclose(fp);}}if(ferror(stdout)){fprintf(stderr, "%s: error writing stdout\n", prog);exit(2);}}/* filecopy : copy file ifp to file ofp*/void filecopy(FILE *ifp, FILE *ofp){int c;while((c = getc(ifp)) != EOF){putc(c, ofp);}}
- C例程:文件读写 拷贝 标准输入输出等
- C/C++标准输入输出与文件输入输出
- C/C++标准输入输出与文件输入输出
- C/C++标准输入输出与文件输入输出
- 标准C文件读写
- C语言及程序设计进阶例程-35 标准文件读写方法
- C标准库读写文件
- 标准C-----文件的输入输出函数
- C标准IO实现文件拷贝
- 标准c语言库读写文件
- c 标准输入输出
- C语言标准输入输出
- C语言 标准输入输出
- C标准输入输出
- Linux-C标准输入输出
- 输入输出流读写文件
- 输入输出流 (文件读写)
- c语言标准输入输出重定向到不同文件
- NTFS 权限设定
- iphone ios 安装Install Mac OS X Dependencies
- Overload 和Override 的区别。Overloaded 的方法是否可以改变返回值的类型?
- ASP开发必备:WEB打印代码大全
- 关于VC++6.0重新安装falsed时出现的DCOM user account解决方案
- C例程:文件读写 拷贝 标准输入输出等
- 根据IP获取省市
- Bugzilla使用指南
- 学生管理系统
- js控制打印属性
- Ubuntu10 Apache2 php5 下修改网站的默认根目录
- Windows8开发预览版提供下载【最新有下载地址有真相】
- 解决Ubuntu11.04中Opera中文输入法ibus的问题
- 关于inf文件