使用cin的if语句的条件不满足,无论如何都要执行语句体

时间:2014-09-04 16:45:17

标签: c++ iostream conditional-statements

if (cin >> var){
    //code 1
}
else{
    //code 2
}

这是我的代码示例。 var的类型为int,因此当用户输入非int值时,我不希望执行代码1。如果我输入字母或符号,代码1将不会执行,代码2将执行。问题是当用户输入双值(例如,3.5)时,代码1和代码2都将执行,但我只想执行代码2。代码1使用var的截断值执行(例如,如果用户输入3.5,代码1执行就像用户输入3一样)我在代码2中使用std::cin.clear()std::cin.ignore() ,但它并没有什么不同。为什么会发生这种情况?如何解决?

0 个答案:

没有答案