|
1 / 1 / 0
Регистрация: 12.04.2012
Сообщений: 20
|
|||||||
Защита от дурака. Ввод данных типа int с клавиатуры.14.04.2012, 02:11. Показов 48564. Ответов 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 / 4574 / 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
Защита от дурака защита от дурака Защита от дурака Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|