#include
#include
using namespace std;
int main()
{
vector v1;
vector v2;
cout<<"请输入v1的内容,整数"< int i=0,j=0;
while(cin>>i)
v1.push_back(i);
cout<<"请输入v2的内容,整数"< while(cin>>j)
v2.push_back(j);
return 0;
}
程序只执行到cout<<"请输入v2的内容,整数"<<endl;
第二个while并没有执行,是为什么?
vector<int> v1;
vector<int> v2;
cout<<"请输入v1的内容,整数"<<endl;
int i=0,j=0;
bool succeed = true;
while(succeed)
{
succeed = cin>>i;
cout << "succeed " << succeed << endl;
v1.push_back(i);
}
cout<<"请输入v2的内容,整数"<<endl;
bool succeed2 = cin>>j;
cout << "succeed2 " << succeed2 << endl;
while(cin>>j)
v2.push_back(j);
强调两点:
cin>>
状态由good
转为bad
,则不管后面的判断状态cin>>j
始终为false
。第一个while循环终止条件是什么,你知道吗? 说白了也就是while(cin >> i)这个循环你没有真正的去理解,如果你的i一直都是整形或者说是
编译器通过隐式转换成整形的情况,这样的话(也就是说没有非法输入的时候)这个循环是不会停止的...所以要看你的输入是否正确...
vector<int> v1;
vector<int> v2;
cout<<"请输入v1的内容,整数"<<endl;
int i=0,j=0;
bool succeed = true;
while(succeed)
{
succeed = cin>>i;
cout << "succeed " << succeed << endl;
v1.push_back(i);
}
cout<<"请输入v2的内容,整数"<<endl;
bool succeed2 = cin>>j;
cout << "succeed2 " << succeed2 << endl;
while(cin>>j)
v2.push_back(j);
强调两点:
cin>>
状态由good
转为bad
,则不管后面的判断状态cin>>j
始终为false
。第一个while循环未退出,程序就不能往下执行了,可以通过i来结束C++循环语句
C++ 容器(一):顺序容器简介http://blog.csdn.net/yhl_leo/article/details/47759729
以前写的顺序容器简介,可以参考一下~