Форум программистов, компьютерный форум, киберфорум
Наши страницы

std::cin & switch case - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ «Комплексные числа» http://www.cyberforum.ru/cpp-beginners/thread607847.html
Программа, которая позволяет выбрать одну или несколько точек на плоскости с помощью мыши. Для каждой точки прорисовывается конформное отображение КЧ и на экран выводится комплексное число в...
C++ Pacman консольный Переписывал прогу пакмена из этого поста http://www.cyberforum.ru/csharp-beginners/thread430592.html, ради самообучения. В визуал студио все хорошо работает а в нетбианс под линуксом ввожу pipez а на... http://www.cyberforum.ru/cpp-beginners/thread607821.html
C++ Чтение файла (найти количество пассажиров и вес багажа)
Здраствуйте, решал задачу тут. Не могли бы вы помочь с одним моментом: при чтении файла (текстового), нужно найти количество пассажиров вес багажа которых превышает 30 кг. С чтением разобрался а вот...
List и Set C++
В общем у нас есть отрезок от 1 до X. Отсортировать этот отрезок, вида: (1,х,2,х-1,...). Заполнить этой последовательностью list и set. И найти в listе и sete элементы делящиеся на 100 или 100-тые...
C++ Составить описание класса одномерных массивов строк http://www.cyberforum.ru/cpp-beginners/thread607795.html
Составить описание класса одномерных массивов строк,каждая строка которых задается длиной и указателем на выделенную для нее память. Предусмотреть возможность обращения к отдельным строкам массива по...
C++ Реализация crc Здравствуйте. Пытаюсь написать алгоритм Используя полимональную арифметику. Опишу алогритм как понимаю.. Считываю исходный двоичный файл по одному байту в переменную unsigned int message..... подробнее

Показать сообщение отдельно
darkknight2008
62 / 62 / 6
Регистрация: 16.10.2011
Сообщений: 200
17.06.2012, 20:35
Никаких глюков нету. Все работает как и должно. Когда поток ожидает ввода цифры, а ты вводишь букву, то внутри потока ввода возникает ошибка. Вот эту ошибку и нужно обработать.
Я себе сделал такую функцию:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
template< class T >
T inputNumber( CHAR *msg )
{
  BOOL inputFlag;
  T num;
  do
  {
    cout << msg;
    cin >> num;
    if (cin.fail() == TRUE)
    {
      cout << "Неверный ввод.\n";
      inputFlag = FALSE;
    }
    else
      inputFlag = TRUE;
 
    cin.clear(); // Очищаем список ошибок потока
    cin.ignore(1000, '\n'); // Очищаем буфер ввода
  } while (inputFlag == FALSE);
 
  return num;
}
msg - сообщение, которое будет запрашивать ввод.
А далее будет идти цикл пока мы не сделаем верный ввод.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.