问题:构建了一个结构体student,希望能从.txt文件中读取出多行数据保存在 结构体指针 内,使用fscanf实现。思路如下:请各位高手,指点一下错误的地方
typedef struct student{
char name[20]; //姓名
int age; //年龄
char class; //班级
struct student *next; //单向的链表
}stu_t,*pstu_t;
pstu_t stu;
初始化
读取数据的代码
FILE *fp=fopen("stu.txt","r");
if(fp==NULL){
perror("读取文件失败");
exit(1);
}
while(stu!=NULL){
if((fscanf(fp,"%s%d%s",stu->name,&stu->age,stu->class))){
//只要不是文件末尾EOF就打印测试一下
printf("%s\t%d\t%s",stu->name,stu->age,stu->class);
}
stu = stu->next;
}
在ubuntu下操作的,不知道是哪部分出了问题。
文本文件 stu.txt
bek 23 三年二班
sdk 23 四年八班
sa 23 五年1班
d 21 六年3班
ds 23 一年1班
这方面的知识不够牢固,希望大神们稍微讲解一下,指点一下错误。感谢感谢
参考:
/* Note:Your choice is C IDE */
#include "stdio.h"
struct SNAKE
{
int direction;
int life;
int node;
int level;
int score;
}snake;
struct FOOD{
int x;
int y;
int yes;
}food;
void main()
{
FILE *fp;
snake.direction=1;
snake.life=1;
snake.node=3;
snake.level=1;
snake.score=0;
food.x=100;
food.y=200;
food.yes=1;
fp = fopen("d:\\snake.dat","wb+");
if(fp==NULL){
printf("can not open file.\n");
exit(0);
}
fwrite(&snake,sizeof(struct SNAKE),1,fp);
fwrite(&food,sizeof(struct FOOD),1,fp);
fclose(fp);
}
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html