while (1)
{
cout << "Enter the Citizen ID number of the worker or Enter 0 to exit:" << endl;
getline (cin, j);
for (i=0; i<5; i++)
{
if (workers[i]->IDno == j)
{
wFind = 1;
cout << "Choose your option:" << endl;
cout << "1- Display all details of the worker" << endl;
cout << "2- Display number of the days worker delayed" << endl;
cout << "3- Display number of the days worker missed" << endl;
cin >> k;
switch (k)
{
case 1:
workers[i]->AWorker();
break;
case 2:
cout << workers[i]->TotalDaysDelayed() << endl;
break;
case 3:
cout << workers[i]->TotalDaysMissed() << endl;
break;
default:
break;
}
}
else
wFind = 0;
}
if (wFind == 0)
cout << "ERROR: No worker has the ID number that you typed!" << endl;
}
Примечание: wFind
инициализируется как 2
.
Когда я выполняю этот код, я всегда получаю такой вывод:
Введите идентификационный номер гражданина работника или введите 0 для выхода:
ОШИБКА: ни у одного работника нет идентификатора, который вы ввели!
Введите идентификационный номер гражданина работника или введите 0 для выхода:
Интересно, что мой код может завершить цикл в цикле перед тем, как получить ввод для строки j
. Как это может быть возможно и что я могу сделать, чтобы это исправить?