读书人

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

发布时间: 2012-11-08 08:48:11 作者: rapoo

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已经失效了

读书人网 >C++

热点推荐