Рекурсия без ошибок
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Во время написания программ я часто сталкиваюсь с проблемой использования рекурсии. Не получается грамотно реализовать воспроизведение функции без ошибки. Рассмотрим следующую программу жирный текст switch. В программе я привел обычный пример самой проблемы. Дело в том, что при вводе случайного числа или символа, программа должна вывести сообщение « неверный ввод » что она в принципе и делает. Но так характерно для одного числа или символа, а вот если мы введем больше чисел и символов то увидим, что программа зацикливается и выводит то количество ошибок, сколько было введено чисел и символов. Вопрос: как реализовать в функции ее возврат исходного начала, без потери данных и затераний system(«cls»).
Пожалуйста, я прошу вас разобраться в этой задаче и помочь мне в ее решении.
Проблема по прежнему актуальна и я не нашел решения. Вот скриншот прилагаю, где отчетливо видно что при вводе нескольких неверных букв, программа возвращает столько же неверных условий. Очень прошу помогите пожалуйста.
После каждого
case
не нужны фигурные скобки.Спасибо Иван, снятие скобок после кейса не помогло решить проблему.
могу выдвинуть предположение. Вы вводите строку — в потоке cin стоит строка, и до тех пор пока она не разойдётся посимвольно в «char c», программа будет глотать поток cin и давать соответствующее сообщение.
Чтобы этого избежать, наверное можно ввести переменную строку для ввода, и уже её анализировать. Или может быть как-нибудь очистить поток cin, если конечно c++ позволяет это сделать.