while(cin >> num)循环输入有关问题

while(cin >> num)循环输入问题
vector<int> vec1,vec2;
int num;
while(cin >> num){
   vec1.push_back(num);
}
while(cin >> num){
  vec1.push_back(num);
}

代码执行时,为了结束循环,输入“ctrl+Z”。问题是输入“cltr+Z”后2个循环都结束了,请问这是怎么回事,能不能只结束第一个循环,进行第二个循环的输入呢
------解决方案--------------------
在两个循环之间加入一个
cin.clear();

------解决方案--------------------
在第一个循环的时候输入流遇到了文件结束符,输入流变为了结束状态,因此第二个循环无法再读取到数据直接跳出。
解决办法就是,在第二个循环前重置输入流的状态。
------解决方案--------------------
cin >> num  返回的并不是这个运算符这次读取成功还是失败,而是返回 cin 这个对象本身。 cin 对象由于 Ctlr+Z 的输入已经处于结束状态了,如果没有清除它就一直处于这个状态。