我一直认为,如果cin >> x
失败,x
是内置类型,例如int
,那么x
会保留在cin
之前的值输入。但是,以下代码根据#include <iostream>
using namespace std;
int main(){
int x = 10, y = 10;
cin >> x;
cin >> y;
cout << x << " " << y;
}
失败的方式生成不同的输出:
y
20 ^Z
的值似乎取决于失败的类型(^ Z代表EOF)
输入20 0
输出20 c
输入20 0
输出20[ENTER]^Z
输入20 10
输出20[ENTER] ^Z
输入20 0
输出int
因此,如果出现故障,则0
设置为值20
。但是我无法理解第三种情况,我输入y
,按Enter键然后按Cntrl + Z,cin
的值在这种情况下根本不会改变。
cin
失败时如何设置值?我应该对他们的价值做出任何假设吗?另外,在为类创建自己的输入运算符时,Class()
失败通常会将类对象设置回预输入值或改为默认值(document.getElementById("password")
)吗?