Помогите доработать программу.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Сделал программу калькулятор.
При вводе букв или знаков вместо цифр программа зацикливается.
Как сделать, чтобы программа выдавала предупреждение об ошибке и возвращалась к запросу первого числа?
Можно так (на примере считывания элементов массива, взято здесь):
Можно изобрести велосипед и считывать строкой, переводя её в число в случае правильного ввода.
Vova_vb, прежде чем помочь, хочу спросить, когда завершается ваша программа? :)
Ваш калькулятор, с учетом всех проверок, а именно:
— проверка выхода за пределы заданного диапазона;
— проверка на ввод некорректного числа;
— проверка на ввод некорректного арифметического знака;
— проверка деления на нуль;
— проверка на выход из программы;
можно организовать так:
Всем спасибо за предложенные решения
Да ладно?
Тест под линуксом: http://youtu.be/H3kfYWnNpTQ
А знаете почему так происходит? Потому что std::istream::sync
имеет особенность:
Я согласен с вами, Croessmah. Здесь много подводных камней с обработкой ввода. Попробуйте протестировать под Linux следующий код.
Нашел свой вариант решения проблемы.
По моему, Vova_vb, это не решение старой проблемы, а начало новой.
Интересно, через две недели, вы сами поймете, что написали?
Присваиваете значение переменной
double
переменной типаint
, в итоге потеря данных.Еще вопрос, а ваша программа делить на отрицательные числа умеет?