作者在 2013-05-12 11:18:05 发布以下内容
/* 编写一个文件复制程序.程序需要从命令行获得源文件名和目的文件名. 尽可能使用标准I/O和二进制模式. */ /* 判断参数 将参数分别存入字符串数组 只读方式打开源文件 写方式打开目的文件 读取源文件内容 将读取的内容写入目的文件 关闭文件 */ #include <stdio.h> #include <string.h> #include <stdlib.h> #define SIZE 40 #define BUFSIZE 1024 void copy(char *, char *); int main(int argc, char **argv) { char source[SIZE]; //源文件名 char target[SIZE]; //目的文件名 if(argc != 3) { fprintf(stderr, "Wrong number of parameters!\n"); exit(1); } strcpy(source, argv[1]); strcpy(target, argv[2]); if(!(strcmp(source, target))) { fprintf(stderr, "Cannot copy to itself!\n"); exit(2); } copy(source, target); puts("Done."); return 0; } void copy(char * source, char * target) { FILE * fps, * fpt; char temp[BUFSIZE]; if((fps = fopen(source, "r")) == NULL) { fprintf(stderr, "Can't open file %s.\n", source); exit(3); } if((fpt = fopen(target, "w")) == NULL) { fprintf(stderr, "Can't create file %s.\n", target); exit(3); } while(fgets(temp, BUFSIZE, fps) != NULL) fputs(temp, fpt); fclose(fps); fclose(fpt); }