说得出来 2017-05-31 10:45 采纳率: 0%
浏览 735

大神求救,用C写的一个信息管理类的系统先delenews后再displayall就会报错

void deletenews()
{
int i,f=0;
//fpp = fopen_s(&fp, "students.bat", "a+");
fqq = fopen_s(&fq, "tmp.bat", "a+");
if (fpp != 0 && fqq!=0)
{
system("cls");
puts("===================通知================");
puts("| |");
puts("| 系统初始化失败,任意键退出! |");
puts("| |");
puts("=======================================");
_getch();
exit(-1);
}
displayall();
printf("请输入你想删除的行:");
scanf_s("%d",&i);
while (f != i)
{
fseek(fp, 0, SEEK_SET);
fread(fp, sizeof(student),1,fq);
fwrite(fp, sizeof(student),1,fq);
f++;
}
fclose(fp);
fclose(fq);
remove("students.bat");
rename("tmp.bat","students.bat");
fpp = fopen_s(&fp, "students.bat", "a+"); //重新建立同学信息文件
return;
}

void displayall()
{
int i = 1,j=0;
student stu;
system("cls");
//fpp = fopen_s(&fp, "students.bat", "a+");
fseek(fp, 0, SEEK_SET); //VS2015系统报错的行
if (fread(&stu, sizeof(student), 1, fp) == EOF)
{
system("cls");
puts("===================通知=================");
puts("| |");
puts("| 同学目录展现失败! |");
puts("| |");
puts("========================================");
exit(-1);
}
printf("编号\t姓名\t学号\t电话号码\tQQ号码\t宿舍号\n");
while (!feof(fp))
{
printf("%d\t",i++);
printf("%s\t", stu.name);
printf("%ld\t", stu.num);
printf("%ld\t", stu.phone);
printf("%ld\t", stu.qqnum);
printf("%d\t", stu.dorm);
printf("\n");
fread(&stu, sizeof(student), 1, fp);
}
return;
}

  • 写回答

1条回答 默认 最新

  • devmiao 2017-05-31 15:47
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序