出现的原因:
cin >> number;通常情况会进行输入读取一个数值,前提是cin正常。如果cin被核定为false,则cin就不会被执行啦。
上述例子中,因为我们在输入一串数字时,输入了结束符进行退出,所以cin已经被核定为false了,所以下边的cin>>number无法正常执行输入操作。
解决方法:
我们要对cin进行恢复,使其恢复正常状态。使用cin.clear()和cin.sync()可以恢复正确状态
补充:
cin被核定为false的情况:(1)遇到结束符:(2)无效输人
通过对上述cin进行恢复如下,一切运行正常:
// 恢复cin正常状态,两个一起使用
cin.sync(); //清除缓冲区
cin.clear(); //清除错误状态
在今天的链表输入测试中就遇到了这种无法输入的情况,
记得出现的原因是上一次输入的回车将cin核定为false,
需要对其状态进行重置。