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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
lenin
1 / 1 / 0
Регистрация: 25.09.2011
Сообщений: 15
#1

Проверка вводимых символов - C++

25.09.2011, 14:27. Просмотров 1527. Ответов 7
Метки нет (Все метки)

Привет форум!
Уже пытался кое-что найти в книжках по С++ по поводу сабжа, но многое мне не ясно, ибо я очень очень чайник.
Вот что мне нужно:
Пользователь должен ввести вещественное число с клавиатуры, но при этом он может допустить ошибку, т.е. ввести не только цифры, но и любые другие символы.
Программа в случае неправильного ввода числа должна сообщить об этом, если же число введено верно, то оно должно храниться в какой-либо переменной вещественного типа.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
1924 / 1190 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.09.2011, 14:28     Проверка вводимых символов #2
C++
1
2
3
double var;
if ( !(std::cin >> var) )
 //ошибка!
lenin
1 / 1 / 0
Регистрация: 25.09.2011
Сообщений: 15
25.09.2011, 14:40  [ТС]     Проверка вводимых символов #3
Если сначала будут цифры, а потом буквы, то не будет работать.
diagon
Higher
1924 / 1190 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.09.2011, 14:43     Проверка вводимых символов #4
Цитата Сообщение от lenin Посмотреть сообщение
Если сначала будут цифры, а потом буквы, то не будет работать.
Будет, т.к. 12345а - некорректный ввод. И программа его не пропустит. Точнее считается только число, буквы будут игнорироваться.
Такова особенность ввода через потоки. По другому разве что считывать в строку, и уже потом пытаться перевести в число.
lenin
1 / 1 / 0
Регистрация: 25.09.2011
Сообщений: 15
25.09.2011, 14:55  [ТС]     Проверка вводимых символов #5
вот так я и хотел изначально сделать
KuKu
1554 / 1032 / 75
Регистрация: 17.04.2009
Сообщений: 2,971
25.09.2011, 16:48     Проверка вводимых символов #6
ммм ... поиск
lenin
1 / 1 / 0
Регистрация: 25.09.2011
Сообщений: 15
16.02.2012, 22:43  [ТС]     Проверка вводимых символов #7
Подниму тему.
Почему, например, здесь при варианте else текст "0000" выводится бесконечно, а не возвращается к началу цикла?
Как от этого избавиться?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{
    int t=1;
    int n;
    while (t==1)
    {
        if (cin>>n)
            cout << "1111";
        else
            cout << "0000";
    }
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2012, 11:58     Проверка вводимых символов
Еще ссылки по теме:

Проверка вводимых данных C++
C++ Проверка корректности вводимых данных
C++ Проверка вводимых данных
Проверка корректности вводимых значений C++
C++ Проверка вводимых чисел на допустимые значения

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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
4667 / 2493 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
17.02.2012, 11:58     Проверка вводимых символов #8
Цитата Сообщение от lenin Посмотреть сообщение
Как от этого избавиться?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main()
{
        int t=1;
        int n;
        while (t==1)
        {
                if (cin>>n)
                        cout << "1111";
                else
                        cout << "0000";
                cin.clear();
                _flushall();
        }
        system("pause");
        return 0;
}
Yandex
Объявления
17.02.2012, 11:58     Проверка вводимых символов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru