求大神帮忙看上程序,才学C语言~不知道什么原因错!
求大神帮忙看下程序,才学C语言~不知道什么原因错!!
Lab1test.DAT文件里的内容如下:每一行一条数据
SA10225048,张三,24
SG10225132,李四,22
SG10225027,王五,24
SA10225213,赵六,25
不知道为什么,我上面的程序,不管我输入的N是1还是2或者是3,程序输出的都是最后一条数据,按道理是输出对应行的数据的,大神帮忙看看啊!
------解决方案--------------------
//st1.s[st1.num]=bf;//每个数组指针指向对应文件行的数据
-》
strcpy(st1.s[st1.num],bf);
到最后,所有的结构体s指针都指向最后的bf,即是最后一个
- C/C++ code
#include<stdio.h> #include<stdlib.h> #include<string.h> #define line 30 char buffer[30]; struct stud { char *s[line]; char num; }st1; void main() { FILE *fp; st1.num=0; if((fp=fopen("Lab1test.DAT","r"))==NULL) { printf("1文件不存在!\n"); exit(0); } char bf[line]; while(!feof(fp)) { fgets(bf,line,fp); st1.s[st1.num]=bf;//每个数组指针指向对应文件行的数据 st1.num++; } fclose(fp); gets(buffer); int n=atoi(buffer);//获取打印的行数n printf("%s\n",st1.s[n-1]);//打印出文件中第n行数据 }
Lab1test.DAT文件里的内容如下:每一行一条数据
SA10225048,张三,24
SG10225132,李四,22
SG10225027,王五,24
SA10225213,赵六,25
不知道为什么,我上面的程序,不管我输入的N是1还是2或者是3,程序输出的都是最后一条数据,按道理是输出对应行的数据的,大神帮忙看看啊!
------解决方案--------------------
//st1.s[st1.num]=bf;//每个数组指针指向对应文件行的数据
-》
strcpy(st1.s[st1.num],bf);
到最后,所有的结构体s指针都指向最后的bf,即是最后一个