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

проверка на правильность ввода - C++

Восстановить пароль Регистрация
 
Kostik_Dodik
0 / 0 / 0
Регистрация: 16.09.2013
Сообщений: 53
20.11.2013, 22:04     проверка на правильность ввода #1
Без лишних слов: проверка на правильность ввода инта k. Работает вроде неплохо, но если вводишь нецелое значение в формате 1.314 , то проверка не срабатывает и прога вводит хвост 0.314 в переменную а. Подскажите, пожалуйста, как исключить возможность ввода нецелого числа в k.
Вот, собственно, и проблемный участок кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
        double a;
    int k;
    cink:
    cout<<"Input k: ";
    try
    {
    cin>>k;
    if (cin.fail())
        throw -1;
    if (k<=0)
        throw 1;
    }
    catch (int a)
    {
        if (a==-1)
        {
            cout<<"Incorrect data input. Remember, k must be integer, and try again\n";
            cin.sync();
            cin.clear();
            goto cink;
        }
        if (a==1)
        {
            cout<<"Incorrect data input. k must be bigger 0. Try again\n";
            goto cink;
        }
    }
    cina:
    cout<<"Input a: ";
    try
    {
    cin>>a;
    if (cin.fail())
        throw -1;
    }
    catch (int a)
    {
        if (a==-1)
        {
            cout<<"Incorrect data input. Try again\n";
            cin.sync();
            cin.clear();
            goto cina;
        }
    }
З.Ы. нужно не очистить поток, а именно повторить ввод k

Добавлено через 24 минуты
в связи с непросматриваемостю up!

Добавлено через 14 минут
Неактуально. Разобрался. Кому надо, то
C++
1
if (cin.peek()!="\n")
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2013, 22:04     проверка на правильность ввода
Посмотрите здесь:

C++ проверка кода на правильность
Проверка на правильность ввода значения. C++
Проверка e-mail на правильность. C++
C++ Проверка на правильность кода
Проверка на правильность ввода с клавиатуры C++
C++ Как контролировать правильность ввода?
циклические алгоритмы (проверять правильность ввода данных) C++
C++ Правильность ввода даты

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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