如果cin>>我们可以对x的值做出假设吗? x失败了吗?

时间:2015-12-01 22:15:49

标签: c++ c++11 cin

我一直认为,如果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"))吗?

0 个答案:

没有答案