1》使用fgets统计给定文件的行号
1 #include<myhead.h>
2 int main(int argc, const char *argv[])
3 {
4 //判断输入文件
5 if(argc != 2)
6 {
7 perror("error");
8 return -1;
9 }
10
11 FILE *fp=NULL;
12 if((fp=fopen(argv[1],"r"))==NULL)
13 {
14 perror("fopen error");
15 return -1;
16 }
17
18 char buf[128]="";
19 int count=0;
20 while(1)
21 {
22 bzero(buf,sizeof(buf)); //清空容器
23
24 if(fgets(buf,sizeof(buf),fp)==NULL)
25 {
26 break;
27 }
28 count++;
29 }
30 printf("该文件共有%d行\n",count);
31 return 0;
32 }
2》使用fgets、fputs完成两个文件的拷贝
1 #include<myhead.h>
2 int main(int argc, const char *argv[])
3 {
4 //判断是否有需要的文件
5 if(argc!=3)
6 {
7 perror("error");
8 return -1;
9 }
10
11 //打开文件
12 FILE *afp=NULL; //a文件的打开
13 if((afp=fopen(argv[1],"r"))==NULL)
14 {
15 perror("file error");
16 return -1;
17 }
18 FILE *bfp=NULL; //b文件的打开
19 if((bfp=fopen(argv[2],"w"))==NULL)
20 {
21 perror("flie error");
22 return -1;
23 }
24
25
26 //实现将a文件拷贝给b文件
27 char buf[128]="";
28 while(1)
29 {
30 bzero(buf,sizeof(buf)); //容器清空
31
32 // memset(buf,0,sizeof(buf));
33
34 if(fgets(buf,sizeof(buf),afp)==NULL)
35 {
36 break;
37 }
38 fputs(buf,bfp); //放入bfp中
39
40
41 }
42 // fclose(afp);
43 // fclose(bfp);
44
45
46 return 0;
47 }
思维导图