void show()
{
FILE * fp;
int clas;
long long stu_code;
long long id_code;
char sex[5];
char enyear[10];
char birthday[20];
char major[10];
char name[10];
struct stu_node * tail, * head=NULL;
struct stu_node * pMove;
struct stu_node * n;
if((fp=fopen("test.dat","r"))==NULL)
{
fp=fopen("test.dat","w+");
fclose(fp);
}
while(fscanf(fp,"%s%s%s%d%s%lld%lld%s\n",name,sex,major,&clas,birthday,&stu_code,&id_code,enyear)!=EOF)
{
n=(struct stu_node * )malloc(sizeof(struct stu_node));
n->clas=clas;n->stu_code=stu_code,n->id_code=id_code;
strcpy(n->name,name);strcpy(n->sex,sex);
strcpy(n->major,major);strcpy(n->enyear,enyear);
strcpy(n->birthday,birthday);
if(head==NULL) head=n;
else tail->next=n;
tail=n;
}
fclose(fp);
pMove=head;
printf("姓名\t性别\t专业\t班级\t出生日期\t学籍号\t身份证号\t入学日期\n");
while(pMove!=NULL)
{
printf("%s\t%s\t%s\t%d\t%s\t%lld\t%lld\t%s\n",pMove->name,pMove->sex,pMove->major,pMove->clas,pMove->birthday,pMove->stu_code,pMove->id_code,pMove->enyear);
pMove=pMove->next;
}
}
为什么这个显示函数除了显示要显示的数据之外还会有乱码
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- qzjhjxj 2022-01-05 13:32关注
修改如下,供参考:
void show() { FILE* fp; int clas; long long stu_code, id_code; char sex[5], enyear[10], birthday[20], major[10], name[10]; struct stu_node* tail = NULL, * head = NULL, * pMove = NULL, * n = NULL; if ((fp = fopen("test.dat", "r")) == NULL) { fp = fopen("test.dat", "w+"); fclose(fp); return; } while (1) { if (fscanf(fp,"%s%s%s%d%s%lld%lld%s\n", name, sex, major, &clas, birthday, &stu_code, &id_code, enyear) != 8) break; n = (struct stu_node*)malloc(sizeof(struct stu_node)); n->next = NULL; n->clas = clas; n->stu_code = stu_code, n->id_code = id_code; strcpy(n->name, name); strcpy(n->sex, sex); strcpy(n->major, major); strcpy(n->enyear, enyear); strcpy(n->birthday, birthday); if (head == NULL) head = n; else tail->next = n; tail = n; } fclose(fp); pMove = head; printf("姓名\t性别\t专业\t班级\t出生日期\t学籍号\t身份证号\t入学日期\n"); while (pMove != NULL) { printf("%s\t%s\t%s\t%d\t%s\t%lld\t%lld\t%s\n", pMove->name, pMove->sex, pMove->major, pMove->clas, pMove->birthday, pMove->stu_code, pMove->id_code, pMove->enyear); pMove = pMove->next; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 TLS1.2协议通信解密
- ¥40 图书信息管理系统程序编写
- ¥20 Qcustomplot缩小曲线形状问题
- ¥15 企业资源规划ERP沙盘模拟
- ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
- ¥15 前端echarts坐标轴问题
- ¥15 ad5933的I2C
- ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
- ¥15 数学建模求思路及代码
- ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题