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

win7家庭版 dev c++出现控制台程序停止

2012-11-08 
win7家庭版 dev c++出现控制台程序终止。[codeC/C++][#include iostream#include list#include strin

win7家庭版 dev c++出现控制台程序终止。
[code=C/C++][#include <iostream>
#include <list>
#include <string>
using namespace std;
int main()
{
  list<string> slst;
  string str;
  cout<<"Enter some strings(crtl+Z to end):"<<endl;
   
  while(cin>>str)
  slst.push_back(str);
  cin.clear();
   
   
  cout<<"Enter a string that you want to search:"<<endl;
  cin>>str;
  for(list<string>::iterator iter=slst.begin();iter!=slst.end();++iter)
  {
  while(*iter==str)
  {
  slst.erase(iter);
  --iter;
  }
   
  }
  for(list<string>::iterator iter=slst.begin();iter!=slst.end();++iter)
  {
  cout<<*iter<<" "<<endl;
  }
  system("PAUSE");
  return 0;
}
]


运行上面这段代码时:第一个Enter some strings(crtl+Z to end): 正常输出
  Enter a string that you want to search: 也正常输出。
  但是输入一个字符串的时候就显示程序终止了。

PS:可以成功运行hello world程序
 

[解决办法]
while(*iter==str)
{
slst.erase(iter);
--iter;
}

erase之后再while(*iter==str),此时iter已经失效了

热点排行