5 / 5 / 1
Регистрация: 16.04.2010
Сообщений: 64
|
|
1 | |
Проверка ввода16.04.2010, 23:47. Показов 13407. Ответов 48
Метки нет (Все метки)
Всем привет. Прошу обясните мне как зделать проверку вводимых даных. Мне нужно к примеру задать числовой масив типа (int). Как зделать так чтоб когда пользователь вводит к примеру Ф123;:87!"№;;%:!"№;%:?*(99321фвфв и тд.. или что нить подобное после проверки попросить повторить ввод даного елемента масива(или числа)?
Я находил в темах немного подобное моему примеру но не смог розобратса, покажыте пожалуста как ето зделать и если можна то в Borland C++. Зарание спасибо.
0
|
16.04.2010, 23:47 | |
Ответы с готовыми решениями:
48
Visual C++ проверка ввода на число, проверка на кирилицу C++ проверка ввода Проверка ввода Проверка ввода |
42 / 24 / 3
Регистрация: 16.03.2010
Сообщений: 199
|
|
17.04.2010, 09:33 | 2 |
не совсем понятна задача... если массив инт, то может надо потребовать, чтобы вводились только числа? или что, объясни лучше
0
|
5 / 5 / 1
Регистрация: 16.04.2010
Сообщений: 64
|
|||||||||||
17.04.2010, 10:37 [ТС] | 3 | ||||||||||
Вот самый простой пример:
но суть дела когда в переменною вводиш какое нибудь символ кроме числапрограма виснет. Я думаю проверка должна ити по принцыпу гдето так:
1)розпознаетиса токо 1 символ тоитсть если веду 27 мне выведе в конце 2 2)когда идет присвоения к масиву в цыкле типа a[i]=key; и я перед етим ввел сh=111111 то оно присвоит так а[i]=1; а[i+1]=1; а[i+2]=1; а[i+3]=1; а[i+4]=1; а[i+5]=1; Думаю суть моей проблемы тепер более ясна!!))
0
|
42 / 24 / 3
Регистрация: 16.03.2010
Сообщений: 199
|
||||||
17.04.2010, 10:52 | 4 | |||||
про скан-код (анси-код) слышал? задай просто диапазон вводимых значений.
что-то типа...:
1
|
5 / 5 / 1
Регистрация: 16.04.2010
Сообщений: 64
|
|
17.04.2010, 11:30 [ТС] | 5 |
0
|
302 / 160 / 62
Регистрация: 27.02.2010
Сообщений: 317
|
||||||
17.04.2010, 12:41 | 6 | |||||
Можно так, но тоже не очень удобно, т.к. вводить нужно только строго по одному числу...
0
|
42 / 24 / 3
Регистрация: 16.03.2010
Сообщений: 199
|
|
17.04.2010, 12:49 | 7 |
обычного си щас нет...так что написать со скан-кодами не смогу...
0
|
5 / 5 / 1
Регистрация: 16.04.2010
Сообщений: 64
|
|
17.04.2010, 14:03 [ТС] | 8 |
програма работает неверно когда пользователь вводит Qwe!!#$%^&*(13313 то она выдает ошыбку а если 123Qwe!!#$%^&*(13313 то она123 записует в масив и выдет ошыбку и просит ввести следущий елемент масива
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
17.04.2010, 14:16 | 9 |
А почему бы просто не вводить всё изначально в чаровский массив и в нём искать ошибки? Если i-й элемент не является цифрой - записываем его индекс в массив индексов и затем выводим пользователю сообщение с просьбой ввести повторно элементы, стоящие на этих позициях, затем заново менять все введённые элементы в чаровском массиве на вновь введённые и так до тех пор, пока ввод не будет полностью корректен... Это если я правильно понял задание)))
0
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
||||||
17.04.2010, 15:24 | 10 | |||||
1
|
4342 / 1474 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
|
||||||
17.04.2010, 15:30 | 11 | |||||
0
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
17.04.2010, 15:39 | 12 |
k1ry4, при вводе, к примеру: 123qweqe, всеравно будет записано в массив, хотя и выдает сообщение о повторе.
0
|
5 / 5 / 1
Регистрация: 16.04.2010
Сообщений: 64
|
|
17.04.2010, 15:44 [ТС] | 13 |
у
у тя тож прога работа не верно не розпазнает"/" и когда ввожу "!"№;%:?*()" виснет
0
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
||||||
17.04.2010, 15:48 | 14 | |||||
Да, увидел ошибку.
Исправил: Код
1
|
4342 / 1474 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
|
||||||
17.04.2010, 15:49 | 15 | |||||
neske, вот полный код, рабочий:
1
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
17.04.2010, 15:53 | 16 |
k1ry4,
1
|
5 / 5 / 1
Регистрация: 16.04.2010
Сообщений: 64
|
|
17.04.2010, 15:55 [ТС] | 17 |
твоя прога не верно работа когда вводиш 111ййй то выдаетса ошыбка и просит вести следуйщий елемент а прошлому присваюетса 111
0
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
17.04.2010, 15:58 | 18 |
Morfiy, зачем ты на русской раскладке вводишь?
PS - смотри пост #14.
0
|
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
|
||||||
17.04.2010, 16:00 | 19 | |||||
13 - ASCII код Enter 8 - ASCII код Backspace сначала мы просто проверяем нажатую клавишу на совпадение с диапазоном кодов клавиш, которые мы разрешили вводить (0 - 9) если совпадает записываем в массив типа char и выводим на экран, если нет - ниче не делаем, при нажатии backspace удаляем символ из массива и затираем символ на экране, после нажатия Enter мы переводим массив символов в число и теперь есть готовое число типа int
1
|
4342 / 1474 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
|
|
17.04.2010, 16:01 | 20 |
neske, возможно компилятор по-иному cin воспринимает. На G++ всё прекрасно работает.
0
|
17.04.2010, 16:01 | |
17.04.2010, 16:01 | |
Помогаю со студенческими работами здесь
20
gets() проверка ввода Проверка ввода Проверка ввода Проверка ввода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |