鱼C论坛

 找回密码
 立即注册
查看: 1034|回复: 3

[已解决]新手求助!!

[复制链接]
发表于 2020-4-2 13:38:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
疑问:我已往student.dat文件中输入了10个学生的信息,但为什么读不了呢?执行程序没有任何输出。

#include<stdio.h>
#include<stdlib.h>
struct Student
{
  char name[10];
  int num;
  int age;
  char addr[15];
}stu[10];
void main()
{
  FILE *fp;
  int i;
  if(fp=fopen("student.dat","rb")==NULL)
  {
          printf("error!");
          exit(0);
  }
// while(!feof(fp))
  for(i=0;i<10;i++)
  {
  fread(&stu[i],sizeof(struct Student),1,fp);
  printf("%-10s%4d%4d%2s\n",stu[i].name,stu[i].num,stu[i].age,stu[i].addr);
  }
   fclose(fp);
}
最佳答案
2020-4-2 14:53:48
应该是 if(fp=fopen("student.dat","rb")==NULL)这一句有问题,改为 if((fp=fopen("student.dat","rb"))==NULL)试试
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-2 13:39:47 | 显示全部楼层
我调试了一下,fopen没有出错,程序调到fread的时候就自动调试完毕了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-2 14:53:48 | 显示全部楼层    本楼为最佳答案   
应该是 if(fp=fopen("student.dat","rb")==NULL)这一句有问题,改为 if((fp=fopen("student.dat","rb"))==NULL)试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-2 17:30:46 | 显示全部楼层
family521 发表于 2020-4-2 14:53
应该是 if(fp=fopen("student.dat","rb")==NULL)这一句有问题,改为 if((fp=fopen("student.dat","rb")) ...

对哦!谢谢啦!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-28 20:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表