CPP 第十三章 编程练习2

作者在 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);
}
文章评论,共0条
游客请输入验证码
浏览39537次