我已经学习了大约一个星期的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;
}
}
答案 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!");