没运行完就退出了?
#include <iostream>
#include <list>
//#include <stdexcept>
using namespace std;
int main(int argc,char *argv[])
{
list<int> list1;
int num;char choice;
cout<<"请输入数据:"<<endl;
while(cin>>num)
list1.push_back(num);
for(list<int>::iterator i=list1.begin();i!=list1.end();i++)
cout<<*i<<" ";
cout<<endl;
list1.sort();
//下面的语句运行不到就退出了,why?
while(list1.size()!=0)
{
cout<<"是否要删除当前List1中最小的数?y/n";
cin>>choice;
if(choice=='y'||choice=='Y')
{
i=list1.begin();
cout<<"Num is:"<<*i<<endl;
list1.erase(i);
}
else return 0;
}
system("PAUSE");
return 0;
}
问题点数:20、回复次数:2Top
1 楼mmmcd(超超)回复于 2006-03-13 15:43:16 得分 20
while(cin>>num)
list1.push_back(num);
====================================================
若能成功跳出while循环,说明输入已经结束了,
cin>>choice;//此句不会给choice输入
因而直接去执行: else return 0;
Top
2 楼defyer007(深入浅出)回复于 2006-03-13 17:53:30 得分 0
谢谢楼上的,是cin中缓冲的问题,让语句没有执行就退出了~Top




