Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
requester
0 / 0 / 0
Регистрация: 23.11.2009
Сообщений: 40
#1

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

12.12.2009, 22:44. Просмотров 1714. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверка вводимых данных. (C++):

Проверка вводимых данных - C++
#include &lt;iostream&gt; using namespace std; int main() { double a, b, c; cout &lt;&lt; &quot;Enter the first side of the...

Проверка вводимых данных - C++
Вот часть программы int main(void) { int vop; setlocale(LC_ALL, &quot;Russian&quot;); int mas1, mas2, mas3, outmas; int ke1, ke2,...

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

Проверка корректности вводимых данных - C++
Здравствуйте, подскажите,пожалуйста, как прописать условия проверки. Мне нужно: если вводится радиус e больше одной из сторон, выводилось...

Проверка корректности вводимых данных - C++
Есть программа на проверку високосного года. Преподаватель при проверке вводит &quot;5 Аотао&quot; к примеру и программа читает первое число и...

Проверка типа вводимых данных. - C++
Собственно,как осуществить ? К примеру,здесь: int main() { int x; int y; cin &gt;&gt; x;

4
Gravity
563 / 557 / 39
Регистрация: 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
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,197
Завершенные тесты: 1
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
Привет! Вот еще темы с ответами:

Проверка на коректность вводимых данных - C++
Есть такой код где данные вводятся целого типа( int x; cin &gt;&gt; x; ). Вопрос такой как проверить действительно ли введено число либо нет...

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

Проверка вводимых данных на соответствие типа - C++
Задание само очень простое - вычитание матриц, с помощью перегрузки функций (одна функция вычитает типы short, другая long double). ...

Портирование кода на С++ (проверка вводимых данных пользователем на корректность) - C++
Требуется портировать код с С# на С++. Код на шарпе - очень простой. В нем не используются языковые особенности шарпа, перевести, я думаю,...


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

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

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