关于c语言读取文本数据到结构体的问题
展开全部
用错函数了。fread的第一个参数是数组,不是结构体。
用fscanf的格式化可以对应每一项数据对应的读入结构体的每一个成员中。
我只给txt中写了三行数据,测试一下效果。
#include<stdio.h>
#define N 10
struct plan{
char ID[6];
char outset[10];
char destination[10];
char sech[6];
int seatnum;
int pnum;
}plandata[N];
main() {
FILE*fp;
if((fp=fopen("plan.txt","r"))==NULL){
printf("无法打开文件。\n");
return;
}
printf("\n航班号\t出发地\t终点\t时间\t座位数\t剩余票数\n");
int i=0;
while(!feof(fp)){
fscanf(fp,"%s\t%s\t%s\t%s\t%d\t%d",plandata[i].ID,plandata[i].outset,plandata[i].destination,plandata[i].sech,&plandata[i].seatnum,&plandata[i].pnum);
printf("%s\t%s\t%s\t%s\t%d\t%d\n",plandata[i].ID,plandata[i].outset,plandata[i].destination,plandata[i].sech,plandata[i].seatnum,plandata[i].pnum);
i++;
}
fclose(fp);
}
运行结果如图
更多追问追答
追问
谢谢大神了,再请教一个问题。用了上述代码之后,我在主函数声明它,然后是不是直接可以用plandata【i】来拿出某一组数据,用在订票或者找查功能上?
追答
所有数据都在结构体数组中了,查找就是遍历结构体数组。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询