Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
MrMax836
0 / 0 / 1
Регистрация: 30.07.2012
Сообщений: 59
#1

Реализовать защиту от дурака (проверку ввода)

17.09.2016, 15:38. Просмотров 189. Ответов 4
Метки нет (Все метки)

Вводится шестизначное число(номер автобусного билета).
Нужно выполнить защиту от дурака(чтобы вводились только цифры, а не другие символы).

Вот мой код(проверяется только первый символ; если это численное значение, то i инкрементируется):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int i = 0;
    char bilet[7];
    cout << "Введите номер билета";
    
    cin.getline(bilet, sizeof(bilet) - 1);
 
    {if (isdigit(bilet[0]))
        ++i;
    else
    {
        cout << "error";
        system("pause");
        return(0);
 
    }
Подскажите, пожалуйста, где ошибка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2016, 15:38
Ответы с готовыми решениями:

Программа отгадывает загаданное пользователем число: реализовать "защиту от дурака"
Программа отгадывает, загаданное пользователем число #include &quot;stdafx.h&quot;...

Реализовать проверку ввода
Всем привет. Весь код выстовлять не буду. Есть метод bool Number::set_num...

как сделать защиту от дурака в этом коде?
как сделать чтобы при вводе чисел больше 20 или букв писало о неправильно...

как устроить проверку на дурака
Я не могу понять как устроить проверку на дурака. Мне надо, чтобы пользователь...

Как с scanf сделать "защиту от дурака"?
Нужно, чтобы пользователь ввел две целочисленные переменные. Как делал я: ...

4
nmcf
6267 / 5575 / 2535
Регистрация: 14.04.2014
Сообщений: 23,468
17.09.2016, 15:40 #2
Все цифры тогда проверяй в цикле. И отнимать единицу от sizeof() не нужно.
1
MrMax836
0 / 0 / 1
Регистрация: 30.07.2012
Сообщений: 59
17.09.2016, 15:42  [ТС] #3
Это часть кода, проверяются все цифры.
Но вот сразу же ошибка выдаётся (выводится "Error").
0
gledor
129 / 24 / 12
Регистрация: 12.08.2015
Сообщений: 154
Завершенные тесты: 1
17.09.2016, 16:04 #4
Видимо, у вас не выполняется условие. А это значит, что нулевой индекс массива занят не цифрой.
А еще у вас перед if скобка фигурная непонятно что делает
Трудно найти ошибку всей программы по пятнадцати строчкам.
1
MrMax836
0 / 0 / 1
Регистрация: 30.07.2012
Сообщений: 59
17.09.2016, 16:15  [ТС] #5
Цитата Сообщение от nmcf Посмотреть сообщение
И отнимать единицу от sizeof() не нужно.
Цитата Сообщение от gledor Посмотреть сообщение
У вас ошибка, потому что каким-то непонятным образом у вас перед if стоит фигурная скобка.
Убрал единицу и скобку, всё заработало.
Спасибо большое.
Жаль, что на практике (на паре) до этого не додумался.
0
17.09.2016, 16:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2016, 16:15

Как написать защиту от некорректного ввода для моей проги?
void task_1(int **A, int M, int N) { int i=0, sum=0; //1.) сумму элементов в...

Выполнить проверку ввода пароля
Надо сделать так,что бы: если пароль 3 раза ввели неправильно,программа...

Сделать проверку уникальности ввода данных
Как сделать так, чтобы в структуре была проверка уникальности ввода данных? То...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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