C语言按行读入文件

getline() 函数无论一行多长,动态分配内存读入行

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 
 5 int main(int argc,const char *argv[])
 6 {
 7     FILE *fp;
 8     size_t len = 0;
 9     char *str = NULL;
10     ssize_t read;
11     
12     if(argc != 2)
13     {
14         fprintf(stderr,"usage: %s <src>\n",argv[0]);
15         exit(1);
16     }
17 
18     if((fp=fopen(argv[1],"r")) == NULL)
19     {
20         perror("fopen()");
21         exit(1);
22     }
23     
24     while((read = getline(&str,&len,fp)) != -1)
25     {
26         
27         //str[read-1]='\0'; 去掉行末换行符
28         fprintf(stdout,"%s",str);
29     }
30     fclose(fp);
31 
32     exit(0);
33 }

 

posted @ 2020-06-03 10:47  天使不设防  阅读(1766)  评论(0编辑  收藏  举报