|
1 / 1 / 0
Регистрация: 12.04.2012
Сообщений: 20
|
|||||||
Защита от дурака. Ввод данных типа int с клавиатуры.14.04.2012, 02:11. Показов 48252. Ответов 21
Метки нет (Все метки)
Данные типа int вводятся с клавиатуры. нужно поставить защиту от дурака. Полазил на форуме нашёл программу:
подскажите пожалуйста, где ошибка в цикле?
0
|
|||||||
| 14.04.2012, 02:11 | |
|
Ответы с готовыми решениями:
21
Защита от дурака, на ввод "мусора" в int Ввод/вывод имени и пути файла, а также защита от дурака Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN |
|
|
||||||
| 14.04.2012, 02:23 | ||||||
|
grumpy13, всё на много проще
2
|
||||||
|
1 / 1 / 0
Регистрация: 12.04.2012
Сообщений: 20
|
|
| 14.04.2012, 02:26 [ТС] | |
|
спасибо большое)
нашёл и у себя ошибку. не хватало строки: cin.sync(); с ней мой вариант так же работает.
0
|
|
|
|
||||||||||||
| 14.04.2012, 02:28 | ||||||||||||
Сообщение было отмечено как решение
Решение
Ну а вообще посмотри этот пост (тебе код С++)
https://www.cyberforum.ru/blog... omment1451 можешь и блог в целом почитать(только тогда уже весь) В идеале код должен выглядеть так
3
|
||||||||||||
|
|
|||||||||
| 14.04.2012, 02:31 | |||||||||
Сообщение было отмечено как решение
Решение
Основная фишка - неверный ввод фиксируется вот так
3
|
|||||||||
|
1 / 1 / 0
Регистрация: 12.04.2012
Сообщений: 20
|
|
| 14.04.2012, 02:34 [ТС] | |
|
Огромное вам спасибо
!
0
|
|
|
|
||||||
| 28.04.2013, 17:57 | ||||||
|
"По просьбам трудящихся" ниже проект с безопасным вводом и меню на заданное кол-во цифровых значений
1
|
||||||
|
p0iznp0izn
|
|
| 28.04.2013, 18:13 | |
|
Трудящиеся говорят Спасибо!
|
|
|
0 / 0 / 1
Регистрация: 16.02.2014
Сообщений: 113
|
||||||
| 02.03.2014, 21:49 | ||||||
|
Обьясните, пожалуйста, эту строчку
Пока переменная і не целая или введенный символ не Enter, то выполнить... Так чтоле?
0
|
||||||
|
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
|
||
| 02.03.2014, 23:11 | ||
|
Пример 1. Пользователь нажимает клавиши: qwer Enter ( Enter - то есть клавишу Enter ) В этом случае будет выполнено условие !(cin>>i), т.к. из строки "qwer" нельзя прочитать целое число - ошибка ввода. Пример 2. Пользователь нажимает: 123RT и затем Enter В этом случае ошибки ввода нет, значение i : 123. Однако в строке ввода ещё остались символы 'R' 'T' и '\n'. В этом случае cin.get() == 'R' ( и значит !='\n' ). Пример 3. Пользователь вводит: 5111222333 Enter Здесь ошибка ввода, если sizeof(i) == 4, ошибка диапазона.
2
|
||
|
0 / 0 / 1
Регистрация: 16.02.2014
Сообщений: 113
|
|
| 02.03.2014, 23:40 | |
|
Спасибо большое!
0
|
|
|
7 / 2 / 0
Регистрация: 02.08.2018
Сообщений: 61
|
|
| 08.01.2020, 01:06 | |
|
Здравствуйте!
На VS 2019 все перечисленные коды не работают: переходят в бесконечный цикл. Что делать? Добавлено через 1 час 50 минут Уточняю, что происходит: При вводе буквы в место числа, cin.fail() становиться равен единице. Но эта единица не хочет сбрасываться командами clear и sync. А ещё компилятор пропускает поле ввода при cin.fail() = 1, что делает отчаянную попытку, прописать ввод без команд очистки, ещё более четной !!!
0
|
|
|
Just Do It!
|
||||||
| 08.01.2020, 01:47 | ||||||
|
Михаил140,
интересно, вот это будет у вас работать:
0
|
||||||
|
7 / 2 / 0
Регистрация: 02.08.2018
Сообщений: 61
|
|
| 08.01.2020, 11:08 | |
|
Увы, тоже не работает. Переходит в бесконечный цикл.
Зато нашёл ещё одну "улику": коды, с командой cin.get работают корректно, при вводе чисел с буквами (653оп), но приводе буквы или букв с числами (па23), код тут же ломается. От кириллицы и латиницы это не зависит.
1
|
|
|
Just Do It!
|
|||||||
| 08.01.2020, 12:27 | |||||||
|
вот щас тестю вот это:
Но нет гарантии, что может всплыть какое-нить г...люк
0
|
|||||||
|
7 / 2 / 0
Регистрация: 02.08.2018
Сообщений: 61
|
|
| 08.01.2020, 14:06 | |
|
XLAT, нет, не работает: int = p4 и всё, снова цикл
0
|
|
|
5120 / 4573 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
||||||
| 08.01.2020, 14:29 | ||||||
|
Михаил140, такой вариант:
2
|
||||||
|
Just Do It!
|
||||||
| 08.01.2020, 16:39 | ||||||
|
liv, тоже есть некорректности,
например: дурак может ввести 555nnn но это полбеды, дальше если вы вводили с ошибкой, то потом код введёт себя не так, как от него ожидаешь. Михаил140, ещё один вариант(ошибку int = p4 отрабатывает корректно) претендующий на универсальность, тестил на VS2019 Version 16.4.2 но я плохой тестер, может вы чё-нить(глюки) тут найдете.
1
|
||||||
|
7 / 2 / 0
Регистрация: 02.08.2018
Сообщений: 61
|
|
| 08.01.2020, 17:00 | |
|
liv, прикольно! На буквы и на буквы с числами реагирует корректно, а числа считывает, пока не обнаружит букву. Но это - то что нужно!
![]() XLAT, тоже Спасибо!
1
|
|
|
Just Do It!
|
|||||||
| 08.01.2020, 17:14 | |||||||
|
вот здесь это исправлено:
2
|
|||||||
| 08.01.2020, 17:14 | |
|
Помогаю со студенческими работами здесь
20
Ввод символа в переменную типа INT
Защита от дурака защита от дурака Защита от дурака Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Как объединить 2 одинаковые БД Access с разными данными
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|