C语言编程实现:将一个文件的内容复制到另一个文件。(详细点的,考试用。)谢谢!

如题所述

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#ifdef BUFSIZ

#undef BUFSIZ

#define BUFSIZ 4096

#endif

/*

使用格式:mcpy 源文件 目标文件

且目标文件和源文件不能一样,否则会清空文件内容,

源文件必须存在,目标文件可存在也可不存在,如果存在,内容会被覆盖掉。

*/

int main(int argc,char **argv)

{

char buf[BUFSIZ];

int msglen;

if(argc!=3||strcmp(argv[1],argv[2])==0)

/*argc:命令行模式下,输入的参数数目。

  argv:第一个参数的首地址。*/

{

fprintf(stderr,"********************************\n\n");

fprintf(stderr,"Please usage:%s source_file destination_file\nAnd source_file is different from destination_file\n\n",argv[0]);

fprintf(stderr,"********************************\n");

exit(0);

}

FILE *fp_src,*fp_des;

if((fp_src=fopen(argv[1],"r"))==NULL)

/*为空,则打开失败*/

{

fprintf(stderr,"open %s failed!\n",argv[1]);

exit(1);

}

if((fp_des=fopen(argv[2],"w"))==NULL)

/*为空,则打开或创建失败*/

{

fprintf(stderr,"open/create %s failed!\n",argv[2]);

exit(2);

}

while(fgets(buf,BUFSIZ,fp_src)!=NULL)

/*从源文件读,读失败或到达文件尾部时,返回NULL*/

  {

  

   if(fputs(buf,fp_des)==EOF)

   /*写入目标文件,写入失败时,返回EOF;若成功返回写入的字节数*/

   {

   fprintf(stderr,"copy %s to %s failed!\n",argv[1],argv[2]);

   exit(3);

  }

  }

  printf("copy %s to %s successful!\n",argv[1],argv[2]);

  return 0;

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-16
方法1
#include <stdio.h>
#include <stdlib.h>
void main()
{
char filename[100],filename1[50],filename2[50];

printf("请输入要读的文件名:");
scanf("%s",filename1);
printf("请输入要写的文件名:");
scanf("%s",filename2);
sprintf(filename,"copy %s %s /y>nul",filename1,filename2);
system(filename);
}
方法2
#include <stdio.h>
void main()
{
FILE *source,*object;
size_t readlen;
char filename1[50],filename2[50];
char diskbuffer[8192];

printf("请输入要读的文件名:");
scanf("%s",filename1);
printf("请输入要写的文件名:");
scanf("%s",filename2);
source=fopen(filename1,"rb");
if (source==NULL)
{
fclose(source);
return;
}

object=fopen(filename2,"wb");
do
{
readlen=fread(diskbuffer,1,8192,source);
fwrite(diskbuffer,1,readlen,object);
}while(!feof(source));
fclose(object);
fclose(source);
}
第2个回答  2011-12-16
打开两个文件,从一个文件读数据,写入到另一个文件,例如: //------{ FILE *fp1,fp2; char c; fp1=fopen("dat.txt","r"); /*打开
第3个回答  2011-12-18
//程序完成的操作:将D盘下 1.txt 文件中内容拷贝至 2.txt 文件中
#include <stdio.h>
#include <stdlib.h>
void FileCopy(FILE *,FILE *);//拷贝子程序申明
void main(void)
{
FILE *fpin, *fpout;
if((fpin = fopen("D:\1.txt","rb")) == NULL)
{
printf("1 can't open file! /n");//文件打开失败打印输出
return;
}
if((fpout = fopen("D:\2.txt","wb")) == NULL)
{
printf("2 can't open file! /n");
return;
}
FileCopy(fpin,fpout);
fclose(fpin);
fclose(fpout);
fpin = NULL;
fpout = NULL;
printf("~~~~~~~~~~~~~~~~~~");
return;
}
void FileCopy(FILE *fpin, FILE *fpout)
{
char ch;
ch = getc(fpin);
while(!feof(fpin))
{
putc(ch,fpout);
ch = getc(fpin);
}
}
求加分 哈哈
第4个回答  2011-12-16
#include<stdio.h>
int main()
{
FILE *fp1,*fp2;
char buf[1024];
fp1=fopen("C:/1.dat","rb");
fp2=fopen("C:/2.dat","wb");
fread(buf,1024,1,fp1);
while(!feof(fp1))
{
fwrite(buf,1024,1,fp2);
fread(buf,1024,1,fp1);
}
fclose(fp1);
fclose(fp2);
}

C语言编程实现:将一个文件的内容复制到另一个文件。(详细点的,考试用...
printf("请输入要读的文件名:");scanf("%s",filename1);printf("请输入要写的文件名:");scanf("%s",filename2);sprintf(filename,"copy %s %s \/y>nul",filename1,filename2);system(filename);} 方法2#include <stdio.h>void main(){FILE *source,*object;size_t readlen;char filename1[50],...

C语言编程中如何将一个文件中的信息转入到另一个文件
int main(void){ FILE *fp1,*fp2;char c;fp1=fopen("dat.txt","r"); \/*打开源文件*\/ fp2=fopen("tot.txt","w"); \/*打开将写入的文件*\/ while ((c=fgetc(fp1))!=EOF) \/*将源文件fp1的内容转存(复制)到目标文件fp2中*\/ fputc(c,fp2);fclose(fp1); \/*关闭文件*\/ fclose...

编写程序实现文件的拷贝.即将源文件拷贝到目标文件,两个文件名均由命 ...
1 以main函数的参数接收命令行参数。2 分别以二进制读写方式打开两个文件。3 循环读取源文件,每次一个字节,并写入目标文件。直到遇到文件结尾结束。4 关闭所有文件。代码:int main(int argc, char *argv[]){ FILE *fp1, *fp2; int c; if(argc < 3) return -1; fp1 = fope...

用C语言编写一个程序,将一个数组中的元素复制到另一个数组中?
{ int i, array1[5], array2[5];printf("请输入第一个数组:");for(i=0; i<5; i++)scanf("%d", &array1[i]);printf("\\n第二个数组:");for(i=0; i<5; i++){ array2[i] = array1[i];printf("%d ", array2[i]);} return 0;} ...

...和数字的数据从一个txt文件读取并输出到另一个txt文件中
void main(){ FILE *fp,*fp1;char str[200];if((fp=fopen("new.txt","wt"))==NULL) \/* 假设新旧文本文件分别是new.txt,old.txt *\/ { printf("cannot open file\\n");return;} if((fp1=fopen("old.txt","rt"))==NULL){ printf("cannot open file\\n");return;} while (fgets...

c语言如何将当前正在运行的exe文件复制到另一个文件夹?
这个替换掉system("copy [dangqian] [mubiao]");--- char str[0];strcat(str,"copy ");strcat(str, dangqian);strcat(str," ");strcat(str, mubiao);system(str);---

你好!怎么实现 c语言实现文件的复制,移动,重命名和删除呀,谢谢了!
删除是CTRL+Y 重命名是F3 保存是F2 复制 好象是 CTRL+K+R\/Y 这个记不太清了 别的都对!

如何用c语言将文件复制到自己想要的文件夹??
C语言里的system("");函数可以执行命令行的几乎所有指令,把命令行输入的内容作为参数传入即可。复制文件的话 应该是:copy 源文件 目的路径。例如命令行里的 copy c:\\test.txt d:\\text.txt,也就是C语言里的:system("copy c:\\test.txt d:\\text.txt");或者这样 char c[50] = "copy c:\\...

...可以将指定内存地址复制指定的长度到另一个内存地址。求看着别太...
举个例子:将s中的字符串复制到字符数组d中。include<stdio.h> #include<string.h> int main() { char*s="GoldenGlobalView"; chard[20]; memcpy(d,s,(strlen(s)+1)); printf("%s",d); getchar(); return0; } ...

C语言如何读取两列数据,然后进行简单处理后输出到另一个文件中...
while( !feof(fp) ) \/\/读至文件末尾 { fscanf(fp,"%d%d",&a[i][0],&a[i][1]); \/\/从文件1.txt中读取数据 i++; } int x=0,y=0; for(int j=0;j

相似回答