c++中cin被跳过不执行

为什么33行的cin被跳过不执行

img


28行的while用来循环输入直到检测到文件尾,往下再写一个cin就不执行了程序直接结束。

cin.clear();
cin.sync();

因为value为int类型
while (std::cin >> value)这个循环结束需要输入'\0'字符,字符不会被value接收,如果不执行清空流缓冲,就会滞留在流缓冲区里,再次执行std::cin >> value;时,一样会输出‘\0’给value,仍然赋值不成功,value 为0 ,而程序直接跳过了

不知道我说清楚了没有,有问题继续讨论。