结构体 文件问题在主函数中调用read()为什么每次都显示cannot open file

//定义结构体//
struct achievement
{int number;
char name[20];
char sex;
float achievement1,achievement2,achievement3;
}tab_achievement[N];

//读出文件函数//
void read()

{FILE *fp;
int i,n;
if((fp=fopen("C:\Users\Administrator\Desktop\ab.txt","r+"))==NULL) //如果不能打开文件
{printf("cannot open file\n");
exit(0); //使程序终止
}

for(i=0;i<n;i++)
{fscanf(fp,"%d%s%s%f%f%f",tab_achievement[i].number,tab_achievement[i].name,tab_achievement[i].sex,tab_achievement[i].achievement1,tab_achievement[i].achievement2,tab_achievement[i].achievement3);
}
fclose(fp); //关闭文件
}

ab.txt中的数据
55140701 wangyiyi n 88 99 99
55140702 wangyier n 85 97 92
55140703 wangyisa w 83 91 78
55140704 wangyisi n 77 98 89
55140705 wangyiwu n 99 67 88

4个回答

 C:\\Users\\Administrator\\Desktop\\ab.txt

路径问题,这样试试

yaya386
yaya386 谢谢
接近 6 年之前 回复

fopen函数中问文件路径问题,把所有的"\"换成“\”,转义符的问题。。

yaya386
yaya386 改完之后出现了乱码怎么办??
接近 6 年之前 回复
cjw1115
______CQ_ 我擦 。。怎么我的双斜杠变单斜杠了?。。。总之你把所有的单斜杠改成双斜杠就行。
接近 6 年之前 回复

C:\Users\Administrator\Desktop\ab.txt 确实存在吗?
如果存在,在代码中,也应该写成:C:\Users\Administrator\Desktop\ab.txt

yaya386
yaya386 谢谢
接近 6 年之前 回复
91program
91program 这是转义字符:\\\\
接近 6 年之前 回复

cannot open file就是不能打开文件的意思
文件不能打开 可能你的文件不存在 或者你没有权限
如果不是上面两者 就看看你的文件路径是不是写错了 因为文件路径中含有特殊字符

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐