如何用c语言读取文本文件中的多行数据

Python015

如何用c语言读取文本文件中的多行数据,第1张

1、用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。

2、例程:

#include<stdio.h>

#include<string.h>

void main()

{

  char a[100],b[100],c[100]

  int i=3,j=4,k=0    //第三行,第四列

  FILE *fp = fopen("data.txt","r")

  while(fgets(c,100,fp)){    //读入每行数据

    i--

    if(i==0) strcpy(a,c)    //读到第三行数据

    b[k++]=c[j-1]        //把每行的那列字符拷到b中

  }

  b[k]=0

  printf("第%d行数据:%s\n",i,a)

  printf("第%d列数据:%s\n",j,b)

  fclose(fp)

}

#include <stdio.h> 

#define MAX_LINE 1024 //每行最大字节数

int main() 

    int n=0

FILE *fp 

char strLine[MAX_LINE] //读取缓冲区

if((fp = fopen("result.txt","r")) == NULL) //判断文件是否存在及可读

printf("Open Falied!") 

return -1 

while (!feof(fp)) //循环读取每一行,直到文件尾

fgets(strLine, MAX_LINE,fp)     //将fp所指向的文件一行内容读到strLine缓冲区

printf("%s", strLine)     //输出所读到的内容

//DO SOMETHING ELSE

fclose(fp) //关闭文件

printf("\n")

return 0 

}

用一维数组存的,如果需要用二维数组则用制表符‘\t’拆分就好了。

feof(p) 应当在读语句后测定,也就是:

读,测定,如果不是EOF则输出。

你现在的次序是:

测定,读,输出,回到测定。

所以读到EOF,你重复输出了最后一次成功读入的内容。

------------

简单修改:

if ( fgets(ch,sizeof(ch),p)==NULL) break