Рейтинг:
0
Michael_Davies
Цикл, который получает входные данные, имеет условие для проверки yn, равное "y", вы инициализируете yn с помощью "y", поэтому условие истинно, и цикл не выполняется ни разу.
Aeroneeee
Если я это сделаю
char yn='y';
while (tolower(yn)== 'y'){
O[orderNum]. numofOrd++;
cout<< " введите код продукта: ";
cin > & gt; O[orderNum]. code[numofOrd];
cout << " введите количество: ";
cin > & gt; O[orderNum]. quantity[numofOrd];
cout << " \nOrder добавлен в очередь\n";
cout << " добавить еще?(Y|N)";
cin > & gt; yn;
}
петля не останавливается. Я думаю, что проблема в cin?
Он не просит пользователя ввести значение.
Michael_Davies
Извините, цикл должен останавливаться, когда вы вводите любой символ, кроме y, вы говорите, что он не останавливается, если вы вводите, скажем, n?
Если вы хотите, чтобы цикл выполнялся хотя бы один раз, используйте Do... В то время как он будет тестировать условие после выполнения кода, а не до него.
Aeroneeee
Я тоже пробовал это сделать, но он не предложит пользователю ввести какое-либо значение.
Но он печатает код ввода и вводит количество.
Это означает, что цикл работает нормально.
Michael_Davies
Если cout для добавления больше не показывает, пожалуйста, будьте ясны.
Поставьте программу на паузу перед выходом, скопируйте консольный текст сеанса и вставьте его сюда, чтобы мы могли видеть, что происходит.
Aeroneeee
void Order:: addOQ() {
char yn = 'y';
соиь <&ЛТ; "количество клиентов" &ЛТ;&ЛТ; orderNum;
cout << " \nEnter имя клиента: ";
cin > & gt; O [orderNum].customer[99];
while (tolower(yn)== 'y'){
O[orderNum]. numofOrd++;
cout<< " введите код продукта: ";
cin > & gt; O[orderNum]. code[numofOrd];
cout << " введите количество: ";
cin > & gt; O[orderNum]. quantity[numofOrd];
cout << " \nOrder добавлен в очередь\n";
cout << " добавить еще?(Y|N)";
cin > & gt; yn;
система ("пауза");
}
}
Выход таков
Количество Клиентов 1
Введите имя клиента: Финн
Введите код продукта: введите количество:
Заказ добавлен в очередь
Добавить еще?(Y|N)нажмите любую клавишу, чтобы продолжить ...
Введите код продукта: введите количество:
Заказ добавлен в очередь
Добавить еще?(Y|N)нажмите любую клавишу, чтобы продолжить ...
Введите код продукта: введите количество:
Заказ добавлен в очередь
Добавить еще?(Y|N)нажмите любую клавишу, чтобы продолжить ...
Aeroneeee
Кстати спасибо за помощь :(
Michael_Davies
Что происходит, когда вы используете отладчик, чтобы увидеть значение в yn после его ввода.
Aeroneeee
Он показывает 0 ошибок и 0 предупреждений
Michael_Davies
Какое значение имеет значение yn после ввода символа, отличного от y? Проходя через отладчик, вы можете увидеть это значение переменной и проверить его, или же Эхо yn после ввода его так, чтобы оно отображалось на консоли.
Aeroneeee
Я инициализирую значение yn = 'y', а затем, когда я его запускаю, он не будет запрашивать значение.
Извините, я не понимаю.
Aeroneeee
Теперь он бежит. Я просто удаляю [99] из cin > & gt; O[orderNum].;