先看一段代码。
vector<int> vecNum;
int num = 0;
while(cin >> num)
vecNum.push_back(num);
cin >> num;
这是一个简单的代码。但是这里会有一个问题,就是
cin >> num; //位于循环外的输入
这行代码无法输入任何数值。原因是什么呢?
我们知道在循环中,我们想要结束循环的条件是cin >> num
不为真,那么,我们就需要在输入结束的时候,先按下回车键
然后按下CTRL+Z
(在windows系统中)。这时候,我们需要注意一点,那就是,此时输入流的状态为置位状态,那么它就没办法进行输入。
所以这里,如果还想输入的话,我们需要对输入流进行复位。那么我们可以添加以下代码就行了。
cin.clear();
整体的代码如下:
vector<int> vecNum;
int num = 0;
while(cin >> num)
vecNum.push_back(num);
cin.clear(); //将输入流复位
cin >> num;