首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关闭再运行,读入文件之后查询就会出BUG咋回事?求大神帮忙

2012-09-12 
关闭再运行,读入文件之后查询就会出BUG怎么回事?求大神帮忙啊void CMyView::OnFileSave(){// TODO: Add yo

关闭再运行,读入文件之后查询就会出BUG怎么回事?求大神帮忙啊
void CMyView::OnFileSave() 
{
// TODO: Add your command handler code here
CFile file;
CTeacher *pt;
//int i;
pt=head;
if(head!=NULL)
{
if(!file.Open("save.txt",CFile::modeCreate | CFile::modeNoTruncate|CFile::modeWrite))
{
::MessageBox(m_hWnd,"打开文件失败","",MB_OK);
}
else
{
file.SeekToEnd();
while(pt!=NULL)

{
file.Write(pt,sizeof(CTeacher));

file.SeekToEnd();

pt=pt->next;
}
file.Close();
::MessageBox(m_hWnd,"写入成功","",MB_OK);
}
}
else
{
::MessageBox(m_hWnd,"没有任何信息,请先输入信息","",MB_OK);
}
}

void CMyView::OnFileRead() 
{
// TODO: Add your command handler code here
CFile file;
if(!file.Open("save.txt",CFile::modeRead))
{
::MessageBox(m_hWnd,"打开文件失败","",MB_OK);
return;
}
else
{
CTeacher *pt;
head=new CTeacher();
pt=head;
cur=head;
file.Read(cur,sizeof(CTeacher));

do{
file.Read(cur,sizeof(CTeacher));
if(cur->next!=NULL)
{
pt=cur;
cur=new CTeacher;
pt->next=cur;
}
else break;
}
while(1);

::MessageBox(m_hWnd,"读入成功","",MB_OK);

}
}


[解决办法]
你的意思是第一次运行时没问题吗?
[解决办法]
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

[解决办法]
大致看了下。
楼主,
1.你OnFileRead() 函数中只有file.Open没有flie.close
2.还是要自己学会调试,崩溃查Call Stack然后Watch你程序里面的pt和head看看是不是逻辑上面的问题。指针有没指错

热点排行