我看到这个代码不寻常的问题不起作用int类型变量而循环一遍又一遍地重复,不问我是否重复。 这个问题刚刚出现,当我把字符不整数。 对于也出现。一个循环,并在int变量字符如我所料
为什么要这样呢? 谢谢
我看到这个代码不寻常的问题不起作用int类型变量而循环一遍又一遍地重复,不问我是否重复。 这个问题刚刚出现,当我把字符不整数。 对于也出现。一个循环,并在int变量字符如我所料
为什么要这样呢? 谢谢
在读取不能转换的用户输入后,输入流处于无效状态。您需要清空流并调用clear
方法重置流上的错误位以恢复正常操作。
如果检测到输入不成功(使用输入流状态位,通过像good()
或fail()
等方法访问),你可以使用类似下面的代码重置流:
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
你把cin在你无法从中提取一个int时处于错误状态,并且没有恢复。因此,当您尝试从中提取重复数据流时,数据流仍然处于失败状态。你需要检查数字的失败(只需使用if(cin >> number))。