Обьясните плиз.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
День добрый уважаемые.
Обьясните идиоту, в чем косяки и как их подправить можно?
Проблема 1 : При вводе в консоле значений для num1 кроме числовых, происходит бесконечное зацикливание 20 строки:
Проблема 2 : Если при объявлении sign ввести в консоле несколько букв, то текст «Вы ввели неправильное действие, введите правильное:», дублируется под каждый знак. Т.е. выглядит все так
как это все можно подправить?
Собственно сам код:
Самое простое — это считывать пользовательский ввод в string через std::getline(). А потом анализировать его в программе.
Можно, конечно, и с istream пободаться. Но это жопа.
Также не стоит использовать goto без острой на то необходимости, так как это сильно усложняет чтение исходников. Особенно это касается больших и/или сложных проектов
Здесь хорошо написан, почему это происходит.
https://ru.stackoverflow.com/questions/550600/c-%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0-%D0%BF%D1%80%D0%BE%D0%BF%D1%83%D1%81%D0%BA%D0%B0%D0%B5%D1%82-%D1%81%D1%82%D1%80%D0%BE%D1%87%D0%BA%D1%83-%D0%BA%D0%BE%D0%B4%D0%B0%D1%81%D1%87%D0%B8%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9
Вот так работает. Уже после первого cin.clear() перестало пролистывать.
Особенно прочти последний комментарий в статье по ссылке сверху.
Здесь вообще хорошо в комментарии написано
Всем большое спасибо!