写一个copy string.c,利用fgets 和fputs是实现文件拷贝.注意源文件打开方式"r" ,目标文件打开方式"w".拷贝完成后,最后输出拷贝的行数.注:最后记得用fclose ()函数关闭文件。例如:./ a.outsrc file dest file最后src file和dest file文件的内容一致。
#include<stdio.h>
#include<string.h>
void copy_file(FILE *src,FILE *dest)
{
char buf[1024]={0};
int line=0,i=0,ch;
while(fgets(buf,sizeof(buf),src)!=NULL)
{
if(buf[strlen(buf)-1]=='\n')
line++;
fputs(buf,dest);
memset(buf,0,sizeof(buf));
}
printf("Copy %d line is successful!\n",line);
return ;
}
int main(int argc, const char *argv[])
{
FILE *fp1;
FILE *fp2;
if(argc !=3)
{
fprintf(stderr,"Usage:%s src dest!\n",argv[0]);
return -1;
}
fp1=fopen(argv[1],"r");
if(NULL==fp1)
{
perror("Fail to fopen");
return -1;
}
fp2=fopen(argv[2],"w");
if(NULL==fp2)
{
perror("Fail to fopen");
return -1;
}
copy_file(fp1,fp2);
fclose(fp1);
fclose(fp2);
return 0;
}