1> 使用fgets统计给定文件的行号
#include<myhead.h>
int main(int argc, const char *argv[])
{
FILE *fp = NULL;
if((fp=fopen("./text.txt","r"))==NULL)
{
perror("fopen error");
return -1;
}
int count = 0;
char buf[128]="0";
while(1)
{
memset(buf,0,sizeof(buf));
if(fgets(buf,sizeof(buf),fp)==NULL)
{
break;
}
if(buf[strlen(buf)]=='\0')
{
count ++;
}
}
printf("行数为%d\n",count);
fclose(fp);
return 0;
}
2> 使用fgets、fputs完成两个文件的拷贝
#include<myhead.h>
int main(int argc, const char *argv[])
{
//判断传入的是否为三个文件
if(argc != 3)
{
printf("input file error\n");
printf("usage:./a.out srcfile destfile\n");
return -1;
}
//以只读的形式打开源文件
FILE *src = NULL;
if((src = fopen(argv[1], "r")) == NULL)
{
printf("open src file error\n");
return -1;
}
//以只写的形式打开目标文件
FILE *des = NULL;
if((des = fopen(argv[2], "w")) == NULL)
{
printf("open destfile error\n");
return -1;
}
char buf[128] = "";
while(1)
{
memset(buf,0,sizeof(buf));
if(fgets(buf,sizeof(buf),src)==NULL)
{
break;
}
fputs(buf,des);
}
fclose(src);
fclose(des);
printf("拷贝成功\n");
return 0;
}