写一个copy_ string.c, 利用fgets 和fputs 是实现文件拷贝.注意源文件打开方式"r",目标文件打开方式"w".拷贝完成后,最后输出拷贝的行数.
#include<stdio.h>
#include<string.h>
void cpy_string(FILE *src_file ,FILE *dest_file)
{
char buf[1024]={0};
int line = 0;
while(fgets(buf,sizeof(buf),src_file) != NULL) //把源文件读取到缓冲区
{
if(buf[strlen(buf) - 1] == '\n')
{
line ++;
fputs(buf,dest_file); //把缓冲区的内容写到目标文件里
memset(buf,0,sizeof(buf));
}
}
printf("%d\n",line); //输出行数
}
int main(int argc, const char *argv[])
{
FILE *src_file;
FILE *dest_file;
if(argc != 3)
{
fprintf(stderr,"Usage:%s src dest!\n",argv[0]);
return -1;
}
src_file = fopen(argv[1],"r");
if(src_file == NULL)
{
perror("Fail to open\n");
return -1;
}
dest_file = fopen(argv[2],"w");
if(dest_file == NULL)
{
perror("Fail to open\n");
return -1;
}
cpy_string(src_file,dest_file); //调拷贝函数
fclose(src_file);
fclose(dest_file);
return 0;
}