vs2010调试时程序退出怎么回事
//建立储存作者与相应作品信息的multimap容器//支持查并删除。若元素不存在,程序也支持。
# include<iostream>
#include<string>
#include<map>
using namespace std;
typedef multimap<string,string> Au_work;
typedef Au_work::iterator Ait;
int main()
{
Au_work work_list;
string sa,sw;
while(1)
{
cout<<"enter author and end all with @"<<endl;
getline(cin,sa);
if(sa=="@")
break;
cout<<"enter the books' name each end by enter,ctrl+z to end all"<<endl;
while(getline(cin,sw))
work_list.insert(make_pair(sa,sw));
cin.clear();
}
while(1)
{
cout<<"enter author you want to erase and @ to end all"<<endl;
getline(cin,sa);
if(sa=="@")
break;
Ait beg=work_list.find(sa),end=work_list.end();
if(beg==end)
cout<<"cannot find the record"<<endl;
else
work_list.erase(sa);
}
cout<<"here"<<endl;///////////////////看这里
//to check whether the code functions well,print all the authors and work still in the list
string pa,ca;
for(Ait beg=work_list.find(sa);beg!=work_list.end();beg++)
{
//ca represents current author,pa represents pricious author
pa=ca;
ca=beg->first;
cout<<((ca==pa)?" ":ca)<<' '<<beg->second<<endl;
}
return 0;
}开始时没写显示删除后的那段代码运行时没问题,为了检查有没有真的达到效果,就加了那一段结果一样,他竟没输出,如图。于是调试设了断点,但每次运行到上面注释的 看这里 附近就自动退出了,如图。其实我写其他小程序时也会遇到同样情况,但自己随便改改,不知不觉那个错就没了。
所以很想问这个自动退出一般是什么原因。。。。谢谢