为什么我打开的文件文件,会关不掉。我打开用的是 fopen,关闭用的是fclose;请指点。

veilensate 2005-01-20 09:55:12
代码如下。
fp=fopen(filenames,"r");
if (fp==null)
{
fclose(fp);
Warning(" 打开文件有错!");
Waitkey;
}
fseek(fp,0l,SEEK_SET);
while(!feof(fp))
{
fread(szRead,1,90,fp);
if (strcspn(szRead,szgongid)>0)
...
fseek(fp,1l,SEEK_CUR);
}
fclose(fp);
...全文
224 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovefly_fanny 2005-01-20
  • 打赏
  • 举报
回复
if (fclose(fp))~~你要判断什么?
出错处理··?
veilensate 2005-01-20
  • 打赏
  • 举报
回复
只是不知道原因为什么在while中加fseek(fp,1l,SEEK_CUR)会关不了。我用if (fclose(fp))试过,
大狭们再指点下。
veilensate 2005-01-20
  • 打赏
  • 举报
回复
至于if语句中的fclose(fp);是我不小心加的。不影响。
veilensate 2005-01-20
  • 打赏
  • 举报
回复
谢谢你们回贴,我知道问题的所在了。就是while中的fseek(fp,1l,SEEK_CUR);有问题,其实可以不要。我忘了。结贴
dongyuanzhang 2005-01-20
  • 打赏
  • 举报
回复
没什么说的了!
zhousqy 2005-01-20
  • 打赏
  • 举报
回复
if (fp==null)
{
fclose(fp);
Warning(" 打开文件有错!");
Waitkey;
}
打开出错了fp==null你关闭什么东西啊,
文件句柄都没有。

还有
while(!feof(fp))
{
fread(szRead,1,90,fp);
if (strcspn(szRead,szgongid)>0)
...
fseek(fp,1l,SEEK_CUR);
}
fclose(fp);

即使打开失败了
这里的fclose还是会执行
---------------------------------------
同意。
winstonch 2005-01-20
  • 打赏
  • 举报
回复
打开失败的时候不要关闭了,同时还应该退出函数。

觉得你第一次打开成功后说没关闭,看你的代码不会是这个问题。希望能帖出你的全部代码,好帮你解决
piaozi2003 2005-01-20
  • 打赏
  • 举报
回复
建议打印errno值,看看有没有什么别的原因造成!
pcboyxhy 2005-01-20
  • 打赏
  • 举报
回复
if (fp==null)
{
fclose(fp);
Warning(" 打开文件有错!");
Waitkey;
}
打开出错了fp==null你关闭什么东西啊,
文件句柄都没有。

还有
while(!feof(fp))
{
fread(szRead,1,90,fp);
if (strcspn(szRead,szgongid)>0)
...
fseek(fp,1l,SEEK_CUR);
}
fclose(fp);

即使打开失败了
这里的fclose还是会执行
veilensate 2005-01-20
  • 打赏
  • 举报
回复
第一次运行正常,第二次运行就会显示 打开文件有错.我检查出来的结果是此文件没有关闭。是何原因?
请大狭们帮忙指点迷津!
veilensate 2005-01-20
  • 打赏
  • 举报
回复
是否关闭成功

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧