作业:利用fgets和fputs实现文件拷贝,并输出拷贝的行数
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int copy_s_fget(FILE * fb,FILE *fb_c)
{
int count = 0;
char buf[12] = {0};
int len = sizeof(buf)/sizeof(buf[0]);
while(fgets(buf,len,fb))
{
fputs(buf,fb_c);
if('\n' == buf[strlen(buf)-1])
count++;
}
return count;
}
int main(int argc, const char *argv[])
{
int count = 0;
if(3 != argc)
{
fprintf(stderr,"usage:%s file1 file 2\n",argv[0]);
return -1;
}
FILE *fb=fopen(argv[1],"r");
FILE *fb_c=fopen(argv[2],"w");
if(fb==NULL)
{
perror("error");
return -1;
}
if(fb_c==NULL)
{
perror("error");
return -1;
}
count = copy_s_fget(fb,fb_c);
printf("行数:%d\n",count);
fclose(fb);
fclose(fb_c);
return 0;
}