std :: cin仅在while循环中运行一次?

时间:2020-08-13 18:29:13

标签: c++ while-loop

很抱歉,这个问题很愚蠢,但是这一直困扰着我。我编写了一个程序,该程序应该接受5次用户输入,然后每次都打印出结果(我正在使用while循环。)这是我编写的代码:

#include <iostream>

int main()
{
    int x = 1;
    int number;

    while (x <= 5)
    {
        std::cin >> number;
        std::cout << number << std::endl;
        x++;
    }

    return 0;
}

但是,在编译并运行(我正在使用clang)之后,该程序只允许我输入一次用户输入,然后只输出一堆0:

jakdfjaksdfjk
0
0
0
0
0

我真的很困惑为什么会发生这种行为。您不应该能够传递5次用户输入吗?为什么会发生这种现象?帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您正在尝试读取一个整数,而“ jakdfjaksdfjk”将是一个字符串,这就是为什么会发生这种情况。输入类似1 4 8 35 42之类的内容,它将按您期望的方式工作

答案 1 :(得分:0)

您应该考虑检查disableScrollZoom的有效性:

disable<type>Zoom