返回信息流将控制台的程序转换为MFC程序时遇到如下错误:
Debug Assertion Failed!
Program: ...\My Documents\Visual Studio 2008\Projects\Code\Debug\Code.exe
File: feoferr.c
Line: 44
Expression: (stream!= NULL)
有经验的牛人们求助啊!
这是一条镜像帖。来源:北邮人论坛 / cpp / #48276同步于 2010/12/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
【求助】急
Rachelbest
2010/12/24镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
C++流类定义了向void*指针的转换函数,基本如下吧:
template <typename charT, typename traits>
class basic_ios
{
public:
operator void* () const {return fail() ? NULL : <一个非零的值>;}
};
所以stream!=NULL等价于stream.fail()==false。
你除了这个断言错误,应该是流操作失败,也就是stream.fail()==true了。
检查一下你在这个表达式之前进行了什么流读取或写入操作没有,如果有,看看为什么会操作失败。
就这样吧。
【 在 bupteinstein 的大作中提到: 】
: 你程序里应该有这样一个语句:
: assert(stream!=NULL);
: 报错的位置就应该就在这里。
好像不是程序的问题,在同学电脑上运行没有错误,我的电脑上用fread也有报同样的错误
LZ检查一下程序中用没用过feof函数,我想是你的这个函数误用了;90%是因为你这样用了这个函数feof(NULL);看一看程序中是不是文件打开不成功,而你却调用feof;