C语言实现读取文件每行字符串

C语言实现读取文件每行字符串,第1张

首先动态申请一块内存用于存放读取的字符串,然后循环读取文件的字符,并将字符放到申请的空间中,如果读取的过程中字符数超过了申请的内存大小就重新分配空间使空间扩充,当读到换行符的时候就终止。

这是我要读取的文件

这是读取结果

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define MaxCols 2000     //设定每行字符数不超过MaxCols,根据变化调整 

//获取已经打开文件fp的第line行内容到stri,如果成功返回得到的字节数,

//如果没有那么多行,返回-2 

int getlinetxt(FILE *fp,int line,char *stri){

int i

fseek(fp,0,0) //指针到文件最开始

for(i=0i<linei++) 

if(fgets(stri,MaxCols,fp)==NULL) //没有这么多行错误

return -2

  return strlen(stri)

}

//获取filename文件的第line行内容到stri,如果成功返回得到的字节数,

//如果打开文件失败,返回-1,如果没有那么多行,返回-2 

int getfiletxt(char *filename,int line,char *stri){

FILE *fp

if ((fp=fopen(filename,"r"))==NULL){

//打开文件错误,返回-1 

return -1

}

return getlinetxt(fp,line,stri)

fclose(fp)

}

int main(){

char s[MaxCols]

int row=10, flag

//以下例子是获取d:\temp.txt的第10行文本内容 

flag=getfiletxt("d:\\temp.txt",row,s)

if (flag==-1)

printf("打开文件错误\n")

else if(flag==-2)

printf("文件中的行数不足%d行\n",row)

else

printf("获取到的文本是: \n%s包含最后的换行符,长度=%d\n",s,flag)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11594196.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存