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

Ошибка типов данных - C++

Восстановить пароль Регистрация
 
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
12.08.2012, 19:08     Ошибка типов данных #1
У меня возник вопрос:
Запускаю программу
Я должен ввести число от одного до трех, после значение записывается в переменную типа int
Если мое число не подходит под это описание(меньше 0 или больше 3) выходит ошибка, в противном случае программа идет дальше.
Но если я ввожу не число, а букву, то мне в бесконечном цикле выводится ошибка, а я хочу независимо от введенного значения (будь то буква или цифра или знак) чтоб программа проверяла все коректно.
Как мне это реализовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2012, 19:08     Ошибка типов данных
Посмотрите здесь:

Преобразование типов данных C++
C++ Объявление типов данных.
Преобразование типов данных C++
C++ Ошибка в несовместимости типов
Ошибка в преобразовании типов C++
C++ Тонкости типов данных
C++ Преобразование типов данных
Конвертирование типов данных C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
12.08.2012, 19:12     Ошибка типов данных #2
C++
1
2
3
4
5
6
7
8
9
10
11
int n;
 
cout << "Введите число: ";
 
while (!(cin >> n))                 // ПОКА происходит ошибка при вводе
{
   cin.clear();                     // Сбросить флаг ошибки
   while ( cin.get() != '\n' ) ;    // Удалить все оставшиеся символы из входной очереди
 
   cout << "Ошибка! Введите целое число: ";
}
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
12.08.2012, 19:17  [ТС]     Ошибка типов данных #3
Цитата Сообщение от Intel~lect Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
int n;
 
cout << "Введите число: ";
 
while (!(cin >> n))                 // ПОКА происходит ошибка при вводе
{
   cin.clear();                     // Сбросить флаг ошибки
   while ( cin.get() != '\n' ) ;    // Удалить все оставшиеся символы из входной очереди
 
   cout << "Ошибка! Введите целое число: ";
}
Спасибо! Все отлично работает
Yandex
Объявления
12.08.2012, 19:17     Ошибка типов данных
Ответ Создать тему
Опции темы

Текущее время: 00:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru