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 @   天使不设防  阅读(1778)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示