08华科机试第四题(命令行方式复制多个文件到一个文件)

/* 采用命令行方式复制任意多个文件内容到一个文件中,如下所示: 
      命令行形式:mycopy 1.txt 2.txt 3.txt 4.txt ...
      功能:复制2.txt 3.txt 4.txt …的内容到1.txt中*/
/*涉及到文件操作先准备几个文件1.txt~6.txt 第一个为空,第二到第六分别存aa bb cc dd ee*/

/*测试数据: cc 1.txt 2.txt   输出:命令有错误!退出!
                                    文件复制失败   
  测试数据: mycopy 1.txt 2.txt 3.txt 4.txt 5.txt  输出:aabbccdd  文件复制成功
  测试数据: mycopy 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt  输出:aabbccddee 文件复制成功   */

/*程序:*************************爱X的味道 07级华中农业大学计算机系*****************************/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int  CopyFile(char *str)
{	
	char dest[100];       /*目标文件名*/
	char source[100];	  /*源文件名*/
	char tmp[100];       /*文件读写中转空间*/
	char command[100];   /*判断命令mycopy*/
	int location[20];
	int i=0,j=0,k=0,count=0;
	FILE *fread,*fwrite;
	while(str[i]!='\0')
	{
		if(str[i]==' ')   /*记录空格*/
		{
			location[count]=i;
			count++;
		}
		i++;
	}
	for(i=0;i<count;i++)
	{
		str[location[i]]='\0';  
	}

	strcpy(command,str);
	if( strcmp(command,"mycopy") !=0)   /*命令判断*/
	{
		printf("命令有错!退出!\n");
		return 0;
	}
	strcpy(dest,str+location[0]+1);
	fwrite=fopen(dest,"w");         /*只写模式打开目标文件*/
	for(j=1;j<count;j++)
	{
		strcpy(source,str+location[j]+1);
		fread=fopen(source,"r");
		while(!feof(fread) )
		{
		 	if( (tmp[k]=fgetc(fread)) !=EOF)
			fputc(tmp[k],fwrite);
			k++;
		}
		k=0;
		fclose(fread);
	}
	fclose(fwrite);
	return 1;
}
int main()
{
	char str[100];
	int result;
	printf("请输入命令行:\n\n");
	gets(str);
	result=CopyFile(str);
	if(result)
		printf("文件复制成功!\n\n");
	else
		printf("文件复制失败!\n\n");
	return 0;
}


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值