说明:逐行读取文件内容到缓存区里
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
int read_line(char *buff,int max_len,FILE*f)
{
int c;
int pos=0;
if(buff==0 || max_len<=0 || f==0)
{
return -1;
}
while((c=fgetc(f)) !=EOF)
{
if(c=='\n')
{
if(pos>0 && buff[pos-1]=='\r')
{
buff[pos-1]=0;
}
else
{
buff[pos]=0;
}
return 0;
}
else
{
if(c==0)
{
buff[pos]=' ';
}
else
{
buff[pos]=c;
}
}
pos++;
if(pos>=max_len-1)
{
break;
}
}
if(pos>0)
{
if(buff[pos-1]=='\r')
{
buff[pos-1]=0;
}
else
{
buff[pos]=0;
}
return 0;
}
else
{
return -1;
}
}
使用:
int main()
{
const char *ptr="./111.txt";
char buff[1024];
FILE *f=0;
f=fopen(ptr,"r");
if(f==NULL)
{
printf("fopen error\n");
return -1;
}
while(read_line(buff,sizeof(buff)-1,f) >= 0)
{
printf("%s\n",buff);
}
fclose(f);
return 0;
}