无限循环C ++的问题

时间:2014-05-02 00:40:08

标签: c++ arrays infinite-loop

我已经在stackoverflow上尝试了一些建议,例如break语句,并且除了预先存在的条件之外还增加了一个数字,并且没有成功。

在选择医生后,此代码会产生无限输出,无论用户被问及是否希望继续输入时输入的内容。

void ClinicDriver::OpenQueue()//see comment at bottom
{
bool cont = true;
while (cont == true)
{
    int QueueChoice;
    for (int a = 0; a < 6; a++)
    {
        cout << Doctors[a] << endl;
    }
cout << "Select a Doctor by number." << endl;
cin >> QueueChoice;
status[QueueChoice - 1] = true;
cout << "Do you wish to continue?" << endl;
cin >> cont;
}
}

这段代码告诉我,当我试图更改部分数据时,我已经进行了访问冲突并且爆炸了。

void ClinicDriver::OpenQueue()
{
bool cont = true;
int n = 0;
while (cont == true && n < 6)
{
    int QueueChoice;
    for (int a = 0; a < 6; a++)
    {
        cout << Doctors[a] << endl;
    }
cout << "Select a Doctor by number." << endl;
cin >> QueueChoice;
status[QueueChoice - 1] = true;                  //blows up here
cout << "Do you wish to continue?" << endl;
cin >> cont;
n++;
}
}

非常感谢任何帮助或建议,谢谢。

1 个答案:

答案 0 :(得分:3)

从cin读取bool可能每次都会评估为真。相反,请以字符串格式询问用户“是”或“否”的值,然后检查您收到的输入。