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

проблема с проверкой вводимых данных - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости http://www.cyberforum.ru/cpp-beginners/thread356147.html
Здравствуйте! Помогите пожалуйста полному чайнику решить две задачки. 1) Даны действительные числа x1, y1, x2, y2. Вычислить min(x1, y1, x2, y2)+min(x1,x2,y1). 2) Даны вещественные числа x, y....
C++ Задача про шахматы Все доброго времени. Помогите пожалуйста с заданием. Нужно с помощью двумерного массива вывести на экран шахматную доску с расставленными на начальных местах фигурами. Выглядеть результат, как... http://www.cyberforum.ru/cpp-beginners/thread356142.html
C++ Проверка вводимых символов
Привет форум! Уже пытался кое-что найти в книжках по С++ по поводу сабжа, но многое мне не ясно, ибо я очень очень чайник. Вот что мне нужно: Пользователь должен ввести вещественное число с...
Массивы: определить количество дней с осадками больше среднего C++
Во всех приведенных ниже вариантах использовать меню для организации работы программы, исходные данные предварительно записать в текстовый файл. Разработать схему алгоритма и программу, используя...
C++ Написать функцию которая проверяет если число(простые числа) не делится на N и меньше N... http://www.cyberforum.ru/cpp-beginners/thread356128.html
Написать функцию которая проверяет если число(простые числа) не делится на N и меньше N...
C++ set_intersection Доброго времени суток. Есть задача. Пытаюсь решить ее через STL #include <iostream> #include <sstream> #include <map> #include <set> #include <algorithm> #include <iterator> подробнее

Показать сообщение отдельно
grizlik78
Эксперт С++
1974 / 1467 / 122
Регистрация: 29.05.2011
Сообщений: 3,037
25.09.2011, 16:25
Там две проблемы. Во-первых не сбрасывается флаг ошибки потока, во-вторых нечисловые символы из потока не извлекаются, обе причины приводят к бесконечным перезапросам.
Я бы, пожалуй, преобразовал бы цикл ввода как-нибудь так:
C++
1
2
3
4
5
6
7
8
9
    while (!(cin >> f))
    {
        cin.clear();
        while (cin.get() != '\n')
            ;
        cout << "Вы ввели не число\n";
    }
    c=(f-32)* 5/9;
    cout << "температура в цельсиях : \n" << c;
Тут, правда, тоже остаётся небольшая проблема. Например если перенаправить ввод из файла с некорректными данными. Надо ещё проверять успешность get() и при ошибке выходить из программы.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.