C语言从txt文件中逐行读入数据存到数组中的实现方法
首先,要知道数据的存储格式是怎样的,
652 722542 691514 644506 588524 565558 608580 648586 696572 482564
第一行表示数字的个数和维数,所以要先读入这些信息:
<spanstyle="white-space:pre"> </span>FILE*fp=fopen("2D_Jesscia_keypos.txt","r"); if(!fp) { fprintf(stderr,"!Error:faildtoopenkeyposfile\n"); return-1; } fscanf(fp,"%d%d%c",&in.numberofpoints,&dim,&ne);
这样就得到了个数信息,这样方便动态的分配内存,接下来就可以逐行读入数据了:
<spanstyle="white-space:pre"> </span>in.pointlist=(REAL*)malloc(in.numberofpoints*2*sizeof(REAL)); charbuf[1024]; charpt1,pt2; for(i=0;i<in.numberofpoints;i++) { if(!feof(fp)) { if(fgets(buf,1024,fp)==NULL) break; sscanf(buf,"%s%s\n",&pt1,&pt2); in.pointlist[2*i]=atoi(&pt1); in.pointlist[2*i+1]=atoi(&pt2); } }
注意,是现将每一行读入buf中,这是字符串类型的,然后再利用sscanf将里面的内容读给pt1和pt2,再利用atoi函数得到数据类型的值。
以上就是小编为大家带来的C语言从txt文件中逐行读入数据存到数组中的实现方法全部内容了,希望大家多多支持毛票票~