我已经学习c++大约一个星期了,我以为我掌握了所有东西,但显然没有。我当时处于程序中期,因此决定运行run只是为了看看情况如何。该程序可以运行,但是永远不会结束。我期望它至少打印第一个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;
    }
}

最佳答案

您没有“刷新输出”。根据不同抽象级别上的各种设置,然后可能不会显示floors:提示,直到还有更多输出与之配合。

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

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

您还应该验证cin的输入是否成功,否则floors的值不确定,并且循环可能会“永远”进行。

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

10-08 20:28