/* 采用命令行方式复制任意多个文件内容到一个文件中,如下所示:
命令行形式: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;
}
08华科机试第四题(命令行方式复制多个文件到一个文件)
最新推荐文章于 2022-04-14 14:14:16 发布