如果我在输入int时输入一个单词会怎么样?

时间:2014-09-06 20:36:51

标签: c++

我有一个问题。假设代码如下:

    int a;
    cin>>a;

如果输入单词而不是整数,会发生什么? a会给予什么价值?

提前致谢。

3 个答案:

答案 0 :(得分:4)

在使用正在读取的值之前,您需要检查读取操作的结果。 >>运算符返回对正在读取的流的引用,该流包含状态信息以指示上一个操作是成功还是失败。如果失败,则读取的变量的值是不确定的,因此不要使用它。

试试这个:

int a;
if (cin >> a) // <-- same as: if (!cin.operator>>(a).fail())
{
    // read successful, use the int as needed...
}
else
{
    // read failed, do not use the int...
}

答案 1 :(得分:1)

当用户输入无法转换为变量类型时,cin&gt;&gt;保持变量的值不受影响。您正在查看变量看起来像未初始化的内容,即零。因此,当您输入单词而不是整数时,变量的值不会受到影响并保持未初始化状态。

答案 2 :(得分:0)

这不是问题。

在C ++中,WORD通常是int的子集。

因此,完整的WORD值范围很容易表示为int

看看这里:

WORD datatype in windows environments(这里只是一个双字节值,int相比之下,大多数情况下是4字节宽)

当然: Word size in linux

当然,这个答案有些诙谐。