作业1>使用fgets统计给定文件的行号
#include<myhead.h>
int main(int argc, const char *argv[])
{
//判断传入的参数是否为2个
if(argc!=2)
{
printf("input file error\n");
printf("usage:./a.out fileName\n");
return -1;
}
//定义文件指针
FILE *fp = NULL;
if((fp =fopen(argv[1],"r"))==NULL)
{
perror("fopen error");
return -1;
}
char buf[128]=""; //定义搬运数组
int num=0; //计数
while ((fgets(buf, sizeof(buf), fp)) != NULL)
{
if (buf[strlen(buf) - 1] == '\n') //看见回车就计数
{
num++;
}
}
printf("该文件有%d行\n", num);
fclose(fp);
return 0;
}
2->
#include<myhead.h>
int main(int argc, const char *argv[])
{
//判断传入的参数是否为3个
if(argc!=3)
{
printf("input file error\n");
printf("usage:./a.out fileName\n");
return -1;
}
//定义文件指针
FILE *fp1 = NULL;
FILE *fp2 = NULL;
if((fp1 =fopen(argv[1],"r"))==NULL)
{
perror("fopen1 error");
return -1;
}
if((fp2 =fopen(argv[2],"a"))==NULL)
{
perror("fopen2 error");
return -1;
}
char buf[128]="";
while ((fgets(buf, sizeof(buf), fp1)) != NULL)
{
fputs(buf, fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}