永发信息网

VS2010 fopen打开不了目标文件,求解

答案:2  悬赏:0  手机版
解决时间 2021-03-23 18:35
  • 提问者网友:沉默菋噵
  • 2021-03-23 13:11
用了这个程序
#include
#define SIZE 10
struct Student_type
{char name;
int num;
int age;
char addr[15];
}stud[SIZE];

void save()
{FILE *fp;
int i;
if((fp=fopen("stud.dat","wb"))==NULL)
{printf("connot open this file\n");
return;
}
for(i=0;i if(fwrite(&stud[i],sizeof(struct Student_type),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}

int main()
{int i;
printf("Please enter data of students:\n");
for(i=0;i scanf("%s%d%d%s",&stud[i].name,&stud[i].num,&stud[i].age,&stud[i].addr);
save();
return 0;
}

之后再用这个程序
#include
#include
#define SIZE 10
struct Student_type
{char name[10];
int num;
int age;
char addr[15];
}stud[SIZE];

int main()
{int i;
FILE *fp;
if((fp=fopen("stud.dat","rb"))==NULL)
{printf("cannot open file\n");
exit(0);
}
for(i=0;i {fread(&stud[i],sizeof(struct Student_type),1,fp);
printf("%-10s %4d %4d %-15s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);
}
fclose(fp);
return 0;
}

但是cmd显示的是connt open file

为什么呢?是程序除了问题吗?求解
最佳答案
  • 五星知识达人网友:人類模型
  • 2020-01-30 06:18
"r"
打开一个用于读取的文本文件

"w"
创建一个用于写入的文本文件

"a"
附加到一个文本文件

"rb"
打开一个用于读取的二进制文件

"wb"
创建一个用于写入的二进制文件

"ab"
附加到一个二进制文件

"r+"
打开一个用于读/写的文本文件

"w+"
创建一个用于读/写的文本文件

"a+"
打开一个用于读/写的文本文件

"rb+"
打开一个用于读/写的二进制文件

"wb+"
创建一个用于读/写的二进制文件

"ab+"
打开一个用于读/写的二进制文件
stud.dat不是二进制文件,用"r","w","a" 就好了
全部回答
  • 1楼网友:持酒劝斜阳
  • 2019-04-27 04:59
你的文件名传的正确么?估计是找不到对应路径下的文件吧?打个断点看看路径名传的是不是正确的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯