Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.90/10: Рейтинг темы: голосов - 10, средняя оценка - 4.90
requester
0 / 0 / 0
Регистрация: 23.11.2009
Сообщений: 40
1

Проверка вводимых данных.

12.12.2009, 22:44. Просмотров 1795. Ответов 4
Метки нет (Все метки)

предполагается, что функция будет проверять, что ввел пользователь, и, если он ввел не натуральное число заранее заданного диапазона, требовать повторного ввода.
однако, если вводить буквы, то цикл выполняется только один раз.
вопрос: почему? :-(


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
int entcontrol(int a, int b)
{
bool bl;
int i,N;
char str[20];
 
do
{
scanf("%s",str);
for(i=0;i<strlen(str);i++)
 if(!isdigit(str[i]))
{
printf("Error: wrong value\n");
bl=0;
break;
}
N = atoi(str);
bl = 1;
if(N<a || N>b) 
{
printf("Error: wrong value\n");
bl = 0;
}
}
while (!bl);
return N;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2009, 22:44
Ответы с готовыми решениями:

Проверка вводимых данных
Вот часть программы int main(void) { int vop; setlocale(LC_ALL,...

Проверка вводимых данных
Как сделать так, чтобы при вводе символов в строку года поступления на экран...

Проверка вводимых данных
#include &lt;iostream&gt; using namespace std; int main() { double a,...

Проверка вводимых данных
Доброго времени суток, форумчане. Я столкнулся с такой проблемой: при введении...

Проверка корректности вводимых данных
Есть программа на проверку високосного года. Преподаватель при проверке вводит...

4
Gravity
569 / 563 / 64
Регистрация: 29.01.2009
Сообщений: 1,274
12.12.2009, 23:18 2
Цитата Сообщение от requester Посмотреть сообщение
однако, если вводить буквы, то цикл выполняется только один раз.
вопрос: почему? :-(
Уж не потому ли, что при условии !isdigit(str[i]) стоит break?
0
requester
0 / 0 / 0
Регистрация: 23.11.2009
Сообщений: 40
12.12.2009, 23:38  [ТС] 3
нет, не поэтому

Добавлено через 6 минут
break прерывает самый "внутренний" цикл, то есть в данном случае цикл с for.
0
Somebody
2799 / 1610 / 251
Регистрация: 03.12.2007
Сообщений: 4,213
Завершенные тесты: 3
13.12.2009, 00:15 4
В 18-й строке bl=1 независимо от результата проверки на цифры/нецифры.
0
requester
0 / 0 / 0
Регистрация: 23.11.2009
Сообщений: 40
13.12.2009, 00:25  [ТС] 5
о, ура, спасибо, я юродивый слепец! %)
0
13.12.2009, 00:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2009, 00:25

Посимвольная проверка вводимых данных
Доброго времени суток. Такая проблема: нужно запретить пользователю вводить...

Проверка типа вводимых данных.
Собственно,как осуществить ? К примеру,здесь: int main() { ...

Проверка корректности вводимых данных
Здравствуйте, подскажите,пожалуйста, как прописать условия проверки. Мне...


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

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

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