debug assertion failed stream!=NULL

     assertion错误又叫断言错误:

          即你认为一定发生的事情却没有发生。

     此处是一个跟fclose有关的断言错误

      那么,什么时候,会发生fclose断言呢?

      发生该错误是,fclose执行出问题了,那么,fclose什么时间会出问题呢?一种情况是,要关闭的文件根本就没有打开,这种情况最常见在于在if(fp!=NUL)中做了文件成功打开的事情,但是,却在if外面进行fclose()。显然,当if()条件不成立的时候,文件并没有打开,而fclose却要执行,这样就会发生错误!(其他情况若有发现再补充)。

      为了防止上述情况,应该怎样做呢?

      首先,要养成良好的编码习惯,对于有可能出错的地方,一定要进行错误校验,如在fopen之后一定要加一句if(fp ==NULL),处理文件打开错误;另外,在程序逻辑太过复杂,掌握不好fclose该放的地方时,可以将fclose放在程序能够退出执行的地方,但是,一定要在fclose前加一句if (fp!= NULL)进行判断。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值