MasterYoda
0 / 0 / 0
Регистрация: 19.11.2016
Сообщений: 28
|
||||||
1 | ||||||
Программирование на С. двойной запрос ввода19.11.2016, 22:42. Просмотров 905. Ответов 17
Метки нет Все метки)
(
Здравствуйте!
Когда нужно ввести значение N, если ввести какую-то букву, то программа виснет. Нужно поставить ограничение на ввод исключительно чисел (что бы буквы вводить было нельзя) Нашла в сети такой нехитрый способ и у себя на сроке 27 применил его. проблема решилась- если ввести букву, то выползает предупреждение как и полагается, НО если вводишь число, то что бы программа сработала его нужно ввести два раза. Раньше, (до этого способа запрета на буквы) Нужно что бы после ввода числа, нажал интер, и программа сразу отработала, а теперь приходится ввести число, нажать интер, после чего тебя перебрасывает на новую строку, потом еще раз ввести число, нажать интер и только после этого она отработает.
0
|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
19.11.2016, 22:42 |
Ответы с готовыми решениями:
17
двойной запрос Двойной запрос Двойной ajax запрос Двойной запрос на поиск |
nmcf
6521 / 5748 / 2618
Регистрация: 14.04.2014
Сообщений: 24,493
|
||||||
19.11.2016, 23:22 | 2 | |||||
Ну так зачем ты 2 раза функцию вызываешь?
0
|
matveev1512
|
||||||
19.11.2016, 23:30 | 3 | |||||
Добавлено через 2 минуты Как вариант можно читать значения как char и потом применить функцию atoi https://ru.wikipedia.org/wiki/Atoi
0
|
MasterYoda
0 / 0 / 0
Регистрация: 19.11.2016
Сообщений: 28
|
|
20.11.2016, 07:33 [ТС] | 4 |
Пробовал ее полностью убрать, но проблема не решилась- все так же нужно два раза вводить переменную N
0
|
shvyrevvg
578 / 538 / 270
Регистрация: 12.05.2016
Сообщений: 1,563
|
||||||
20.11.2016, 09:29 | 5 | |||||
0
|
shvyrevvg
578 / 538 / 270
Регистрация: 12.05.2016
Сообщений: 1,563
|
|
20.11.2016, 10:32 | 7 |
Вы бы хоть скрин показали
![]() Добавлено через 8 минут MasterYoda, если хотите заморочиться( чтобы и 34fdsf обрабатывалось), то почитайте http://www.cyberforum.ru/blogs/42536/blog278.html
0
|
nmcf
6521 / 5748 / 2618
Регистрация: 14.04.2014
Сообщений: 24,493
|
|
20.11.2016, 10:51 | 9 |
matveev1512, она возвращает количество введённых полей, а не bool.
1
|
nmcf
6521 / 5748 / 2618
Регистрация: 14.04.2014
Сообщений: 24,493
|
|
20.11.2016, 11:14 | 11 |
Ну в случае одного параметра, может, и верно, только надо очищать ввод.
0
|
MasterYoda
0 / 0 / 0
Регистрация: 19.11.2016
Сообщений: 28
|
|
20.11.2016, 11:41 [ТС] | 12 |
shvyrevvg, спасибо!
Единственное, вы практически весь код переписали. Да, по функционалу она получился даже лучше, да и ошибок с текстом нет. Но мне бы еще хотелось узнать, возможно ли в моем коде решить проблему с вводом текста? и из-за чего приходится этот косяк с двойным вводом N? Выше советовали функцию atoi, но как-то о ней не очень хорошо отзываются.
0
|
matveev1512
|
||||||
20.11.2016, 12:01 | 13 | |||||
Проверял разные варианты. В любом случае если не Число то scanf возвращает ноль . И да нужно очистить ввод, все верно!
Добавлено через 12 минут Попробуйте вот так
чистка ввода
0
|
shvyrevvg
578 / 538 / 270
Регистрация: 12.05.2016
Сообщений: 1,563
|
||||||
20.11.2016, 12:12 | 14 | |||||
![]() Решение
Вы два раза scanf_s("%d", &N) вызываете перед ифом и в ифе. Только не atoi, strtol можно.
1
|
MasterYoda
0 / 0 / 0
Регистрация: 19.11.2016
Сообщений: 28
|
|
20.11.2016, 12:17 [ТС] | 15 |
shvyrevvg, Огромное спасибо.
Я тоже как раз только что от статьи пришел, на которую вы ссылку давали. Там как раз ваш метод, который вы здесь применили, рассматривался.
0
|
matveev1512
|
||||||
20.11.2016, 12:19 | 16 | |||||
![]() Решение
Я думаю вот так будет то что вам нужно
1
|
shvyrevvg
578 / 538 / 270
Регистрация: 12.05.2016
Сообщений: 1,563
|
|
20.11.2016, 12:20 | 17 |
Ну это не мой метод, сам скомуниздил из этой статьи
![]()
0
|
MasterYoda
0 / 0 / 0
Регистрация: 19.11.2016
Сообщений: 28
|
|
20.11.2016, 12:35 [ТС] | 18 |
matveev1512, спасибо! Это тоже отлично подходит.
0
|
20.11.2016, 12:35 | |
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
20.11.2016, 12:35 |
Двойной запрос с поиском Двойной запрос в Mysql C# Двойной запрос в mysql Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |