‘壹’ c语言 如何一行行读文件
#include<stdio.h>
#include<stdlib.h>
voidmain()
{
charb[25];
//打开文件
FILE*fp;
fp=fopen("D:\a.txt","r");
//获取文件内容,每次读一个字符,包括空格
for(inti=0;i<25;i++)
//fscanf(fp,"%c",&b[i]);
fgets(&b[i],2,fp);
fclose(fp);
//显示读取到的内容
for(inti=0;i<25;i++)
printf("%c",b[i]);
}
‘贰’ C语言读取指定行数据
#include<stdio.h>
#defineMAXC1024
intReadSpeacialLine(inti)
{
charfilename[]="test.c";//文件名
FILE*fp;
intret=0,L;
intWhichLine=i;//指定要读取哪一行
intCurrentIndex=0;//当前读取的行
charStrLine[MAXC];//每行最大读取的字符数,可据实际情况更改
if((fp=fopen(filename,"r"))==NULL)//打开文件
{
printf("openfileerror! ");
returnret;
}
while(1){
if(NULL==fgets(StrLine,MAXC,fp))break;
L=strlen(StrLine);
if(' '==StrLine[L-1]){
memset(ln+L-1,0,MAXC-L+1);
CurrentIndex++;
if(WhichLine==CurrentIndex)
{
fgets(StrLine,MAXC,fp);//读取一行
printf("%s",StrLine);//输出
ret=1;
returnret;
}
}
else{//行内容太多StrLine会读不到行结尾的情况
CurrentIndex++;
if(WhichLine==CurrentIndex)
{
fgets(StrLine,MAXC,fp);//读取一行
printf("%s",StrLine);//输出
ret=1;
returnret;
}
while(1){
if(NULL==fgets(StrLine,MAXC,fp))gotoEND;
L=strlen(ln);
if(' '==ln[L-1])break;
}
}
}
end:
fclose(fp);//关闭文件
returnret;
}
使用fgets函数,fgets是每次读取一行。
使用memset来清除StrLine,防止上一次StrLine中的内容未清除。
满意请采纳,不懂请追问。
‘叁’ C语言读取文件内容,按行读
C语言逐行读取文件内容 ,参考代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#defineMAX_LINE1024
intmain()
{
charbuf[MAX_LINE];/*缓冲区*/
FILE*fp;/*文件指针*/
intlen;/*行字符个数*/
if((fp=fopen("test.txt","r"))==NULL)
{
perror("failtoread");
exit(1);
}
while(fgets(buf,MAX_LINE,fp)!=NULL)
{
len=strlen(buf);
buf[len-1]='