为什么我的循环不能像我期望的那样工作?

时间:2016-06-30 10:08:00

标签: c++ loops cout

我已经学习了大约一个星期的c ++,我认为我已经控制了一切,但显然没有。我是中期节目,并决定只是为了看看事情的样子。该程序运行,但永远不会结束。我期待它至少打印出第一个cout声明。

#include <iostream>
using namespace std;

int main()
{
    int floors, rooms, i = 0;
    cout << "floors: "; cin >> floors;
    while (floors > i) 
    {
        cout << "rooms: "; cin >> rooms;
        ++i;
    }
}

1 个答案:

答案 0 :(得分:2)

你没有&#34;刷新你的输出&#34;。根据不同抽象级别的各种设置,floors:提示可能不会显示,直到还有更多输出与它一起显示。

然后,您的程序在显示提示之前正在等待输入。

<< flush添加到cout语句中,以确保文本显示在屏幕上:

您还应该验证cin的输入是否成功,否则floors具有不确定的值,并且您的循环可以继续“#34;永远&#34;。

cout << "floors: " << flush;
if (!(cin >> floors))
  throw std::runtime_error("Value provided for 'floors' could not be read into an int!");