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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
lenin
 Аватар для lenin
1 / 1 / 0
Регистрация: 25.09.2011
Сообщений: 15
25.09.2011, 14:27     Проверка вводимых символов #1
Привет форум!
Уже пытался кое-что найти в книжках по С++ по поводу сабжа, но многое мне не ясно, ибо я очень очень чайник.
Вот что мне нужно:
Пользователь должен ввести вещественное число с клавиатуры, но при этом он может допустить ошибку, т.е. ввести не только цифры, но и любые другие символы.
Программа в случае неправильного ввода числа должна сообщить об этом, если же число введено верно, то оно должно храниться в какой-либо переменной вещественного типа.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2011, 14:27     Проверка вводимых символов
Посмотрите здесь:

Проверка вводимых данных. C++
C++ Проверка вводимых значений
C++ Проверка вводимых символов
C++ Проверка вводимых значений
Проверка на коректность вводимых данных C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.09.2011, 14:28     Проверка вводимых символов #2
C++
1
2
3
double var;
if ( !(std::cin >> var) )
 //ошибка!
lenin
 Аватар для lenin
1 / 1 / 0
Регистрация: 25.09.2011
Сообщений: 15
25.09.2011, 14:40  [ТС]     Проверка вводимых символов #3
Если сначала будут цифры, а потом буквы, то не будет работать.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.09.2011, 14:43     Проверка вводимых символов #4
Цитата Сообщение от lenin Посмотреть сообщение
Если сначала будут цифры, а потом буквы, то не будет работать.
Будет, т.к. 12345а - некорректный ввод. И программа его не пропустит. Точнее считается только число, буквы будут игнорироваться.
Такова особенность ввода через потоки. По другому разве что считывать в строку, и уже потом пытаться перевести в число.
lenin
 Аватар для lenin
1 / 1 / 0
Регистрация: 25.09.2011
Сообщений: 15
25.09.2011, 14:55  [ТС]     Проверка вводимых символов #5
вот так я и хотел изначально сделать
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,946
25.09.2011, 16:48     Проверка вводимых символов #6
ммм ... поиск
lenin
 Аватар для 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++

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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 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     Проверка вводимых символов
Ответ Создать тему
Опции темы

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