Форум программистов, компьютерный форум CyberForum.ru

Почему при вводе числа программа работает нормально, а при вводе буквы уходит в бесконечный цикл? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как будут инициализированы переменные в теле функции и вне тела функции? http://www.cyberforum.ru/cpp-beginners/thread1661422.html
Здравствуйте. Подскажите, пожалуйста, как будут инициализированы переменные в теле функции и вне тела функции? Какими значениями? std::string global_str; int global_int; int main() { int local_int; std::string local_str; }
C++ Ищу библиотеку с функциями для пиксельного вывода элементов (линии, точки и т.п.) Необходимы функции для пикслельного вывода элементов (линии, точки и т.п.). Знаю как объекты загружать, но мне необходимо по пикселям сделать! Например мне надо реализовать алгоритм Брассини, алгоритм только на паскале: но я переведу на С++ http://www.cyberforum.ru/cpp-beginners/thread1661420.html
C++ Заменить в строке символьные константы вида 'А', 'B' и т.д. на соответствующие hex-коды
Подскажите пожалуйста!!! нужно заменить в строке символьные константы вида 'А', 'B' и т.д. на соответствующие шестнадцатеричные (т.е. 'А' на 0x41 и т.д.). Очень важно для зачета нужно. Я недавно в программирование. Написал сначала вот так препод сказал, что так пока нельзя, мол слишком просто. #include <iostream> using namespace std; int main() { char Alfavit = 65; while (Alfavit<...
C++ Перевести символ из символьной матрицы в int
здравствуйте. есть двумерный массив символов: int n=0; cout << "enter n "<<endl; cin >>n; char ar; первый вопрос : можно ли так ,если я хочу, чтобы на каждый n-ый массив приходилось по 2 символа? если да , то как мне потом перевести, допустим, символ '1' из этого массива в int пробовал так: int val = atoi(ar);
C++ Описать процедуру DigitCountSum http://www.cyberforum.ru/cpp-beginners/thread1661402.html
Описать процедуру DigitCountSum (К , С , S), находит количество 3 цифр целого положительного числа К , а также их сумму S ( К - входной , С и S - выходные параметры целого типа). С помощью этой процедуры найти количество и сумму цифр для каждого из этих чисел
C++ Преобразования типов данных Допустим если объявить функцию Determinant типа void, как сделать чтоб возвращаемые ей значения return(d) были типа int ? #include <iostream> using namespace std; // Функция вывода матрицы void PrintMatr (int **mas, int m) { int i,j; for(i=0;i<m;i++) { for(j=0;j<m;j++) cout << mas << " "; подробнее

Показать сообщение отдельно
Dreamer_0x01
248 / 75 / 25
Регистрация: 29.10.2015
Сообщений: 187
13.02.2016, 16:07     Почему при вводе числа программа работает нормально, а при вводе буквы уходит в бесконечный цикл?
Понятно. Если cin ожидает int, а вы вводите другое - возникает ошибка потока, которую нужно либо проверять, либо обрабатывать.

Вот тут хорошие рассуждения на эту тему нашел:
http://www.linux.org.ru/forum/development/5305320

Добавлено через 2 минуты
Цитата Сообщение от FrostDamage1488 Посмотреть сообщение
У меня большая программа
А вот из-за этого тем более нужно избавиться от рекурсивного вызова.
Иначе, это бомба замедленного действия. Рекурсия всегда должна быть конечной. Если у вас она получается бесконечной - заменить ее на цикл.
C++
1
2
3
4
5
6
7
8
9
10
int main()
{
setlocale(LC_ALL, "RUSSIAN");
while(1)
{
mainmenu();
}
}
 
//и из самой mainmenu() убрать рекурсивный вызов.
 
Текущее время: 08:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru