c语言编写程序,完成把一个文件的内容复制到另一个文件中去。源文件的名字从键盘输入,目的文件的名字也

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个回答  2016-04-19
#include <stdio.h>

int Copy_File(char* in_path,char* out_path)
{
FILE* in=NULL;
FILE* out=NULL;

if((in=fopen(in_path,"rb"))==NULL)
{
printf("无法打开源文件!\n");
return(1);
}

if((out=fopen(out_path,"wb+"))==NULL)
{
printf("无法创建目标文件!\n");
fclose(in);
return(1);
}

char data;

while(!feof(in))
{
if(1==fread(&data,sizeof(char),1,in))
fwrite(&data,sizeof(char),1,out);
}

fclose(in);
fclose(out);

return(0);
}

int main()
{
char in_path[256];
char out_path[256];

printf("请输入源文件的路径: ");
scanf("%s",in_path);

printf("请输入目的文件的路径: ");
scanf("%s",out_path);

if(Copy_File(in_path,out_path))
{
printf("拷贝失败!");
}else
printf("拷贝成功!");

return(0);
}本回答被提问者和网友采纳

怎么用c语言写一个 程序。实现从键盘输入字符并写入一个文件。
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。一般的C语言教程...

c语言怎么从键盘输入文件名 在d盘创建
int main(){ FILE *fp;char str[99]="d:\\\\",filename[99]="";gets(filename);strcat(str,filename);strcat(str,".txt");fp=fopen(str,"w");fclose(fp);return 0;}

C语言。编写程序实现文件内容搜索功能:从键盘输入文件名和待搜索单词...
} printf("单词\\"%s\\"一共在文件\\"%s\\"中出现%d次 \\n",word,filename,num);return 0;}

c语言,有高手教我怎么导出运行结果吗??导出到指定文件。
功能是:将字符ch写到文件指针fp所指的文件中去.当输出成功,putc函数返回所输出的字符;否则,返回一个EOF值.EOF是在stdio.h库函数文件中定义的符号常量,其值等于-1.13.5调用getc(fgetc)和putc(fputc)函数进行输入和输出例如:把从键盘输入的文本按原样输出到名为file_1.dat文件中,用字符@作为键盘输入结束标志.#incl...

如何用C语言,从键盘输入一个字符串,将其按逆序存入另一个字符数组中并...
include <stdio.h> int main(){ char s1[20], s2[20];scanf("%s", s1);int l=0,i=0;while(s1[l] !='\\0') l++;for(i=0;i<l;i++){ s2[l-1-i]=s1[i];} s2[l]='\\0';printf("%s", s2);return 0;}

将键盘上输入的一个字符串保存到一个磁盘文件中。。c语言编写
fwrite、fprintf、fputc等写文件函数都可以完成,而专用的字符串文件写入函数fputs更方便一些。举例如下(文件建立在当前目录下,名为123.txt):\/\/#include "stdafx.h"\/\/If the vc++6.0, with this line.#include "stdio.h"#include "string.h"#include "stdlib.h"int main(void){ char s[7...

C语言中怎么打开一个文件然后写入一些数据,然后再把数据取出来,最好有...
word[1000];FILE *fp;if((fp=fopen("words.txt","r+"))==NULL){fprintf(stdout,"Can't open \\"words\\" file\\n");exit(1);}while(fgets(word,100,stdin)!=NULL&&(word[0]!='\\n')){fputs(word,fp);}while(fscanf(fp,"%s",word)==1){puts(word);}return 0;}words....

如何用C语言,从键盘输入一个字符串,将其按逆序存入另一个字符数组中并...
以一个8为字符串为例:代码如下 include<stdio.h> int main(){ int i,j;char ch1[8],ch2[8];for(i=0;i<8;i++){ printf("请输入第%d个字符",i);scanf("%c",&ch1[i]);fflush(stdin);} for(j=0;j<8;j++){ ch2[j]=ch1[7-j];printf("%c",ch2[j]);} } ...

C语言编程题:从键盘输入三行字符,写入一个文件,再把该文件内容读出显示...
strike any key exit!"); getch(); exit(1); } printf("input a string:\\n"); ch=getchar(); while (ch!='\\n') { fputc(ch,fp); ch=getchar(); } rewind(fp); ch=fgetc(fp); while(ch!=EOF) { putchar(ch); ch=fgetc(...

C语言文件操作:从键盘输入一行字符写入一个文件再把该文件内容读出显示...
printf("Cannot open file strike any key exit!");getch();exit(1);} printf("input a string:\\n");ch=getchar();while (ch!='\\n'){ fputc(ch,fp);ch=getchar();} rewind(fp);ch=fgetc(fp);while(ch!=EOF){ putchar(ch);ch=fgetc(fp);} printf("\\n");fclose(fp);} ge...

相似回答