Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
Kenwood2010
48 / 59 / 14
Регистрация: 26.11.2010
Сообщений: 192
#1

Ограничение на ввод букв! - C++

20.12.2010, 10:44. Просмотров 2122. Ответов 7
Метки нет (Все метки)

Приветствую Вас друзья!
В общем такая проблема:
Нужно выполнить проверку на ввод только цифр, если вместо цифры введена буква запросить повторный ввод цифры и так то того пока не будет введена цифра.
http://www.cyberforum.ru/cpp-beginners/thread383852.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2010, 10:44
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ограничение на ввод букв! (C++):

Как лучше поставить ограничение на ввод букв, и знаков перпинания
Добрый вечер! подскажите, как лучше поставить ограничение на ввод букв, и...

Ограничение на ввод символов (разрешить ввод только цифр)
Всем доброго времени суток! Я начал изучать С++ и у меня возник такой...

Ограничение на ввод
В программе пользователь должен вводить только целые числа. Если введет...

Ограничение на ввод
Как сделать ограничение, чтобы |x|>3? Помогите пожалуйста #include...

Ограничение на ввод только цифр
Друзья, У тут меня проблемка возникла, помогите, пожалуйста ;) Коротко: я...

7
deadlock
376 / 356 / 23
Регистрация: 14.12.2010
Сообщений: 1,265
20.12.2010, 10:53 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
int main(int argc, char *argv[])
{
bool text;
char *enter=new char[128];
for (int i=0;i<128;i++) enter[i]=0;
do
{
  text=0;
  printf("Vvedite chislo: ");
   scanf("%s",enter);
   for (int i=0;i<128;i++) if (enter[i]!=0&&enter[i]<'0'||enter[i]>'9') text=1;
  if (text==1)
   {
      printf("Oshibka vvoda - vveden tekst\n");
      for (int i=0;i<128;i++) enter[i]=0;
   }
}
while(text!=0);
printf("Vvedeno chislo %s",enter);
}
1
eczo
37 / 37 / 17
Регистрация: 15.12.2010
Сообщений: 110
20.12.2010, 11:15 #3
C++
1
.....
0
Kenwood2010
48 / 59 / 14
Регистрация: 26.11.2010
Сообщений: 192
20.12.2010, 11:22  [ТС] #4
нужно просто ввел цифру до пустим 1, все супер идем дальне;
внес букву q - неверно просим повторить ввод еще раз и так пока не будет внесена цифра.
0
deadlock
376 / 356 / 23
Регистрация: 14.12.2010
Сообщений: 1,265
20.12.2010, 11:33 #5
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
28
29
30
#include <stdio.h>
int main(int argc, char *argv[])
{
    bool text;;
    char *enter=new char[128];
    for (int i=0;i<128;i++) enter[i]=0;
    int counter=0;
    do
    {
    do
    {
      text=0;
      printf("Vvedite chislo: ");
       scanf("%s",enter);
       for (int i=0;i<128;i++) if (enter[i]!=0&&enter[i]<'0'||enter[i]>'9') text=1;
      if (text==1)
       {
          printf("Oshibka vvoda - vveden tekst\n");
          for (int i=0;i<128;i++) enter[i]=0;
       }
      else
      {
          printf("%i. Vvedeno chislo %s\n",counter+1,enter);
          counter++;
      }
    }
    while(text!=0);
    }
    while (counter!=10);
}
запросит ввод 10 раз, будет заколебывать пока не получит 10 чисел
1
Kenwood2010
48 / 59 / 14
Регистрация: 26.11.2010
Сообщений: 192
20.12.2010, 11:38  [ТС] #6
а попроще нельзя это сделать?
мне это надо при вооде размерности массива который память под который выделяется динамически.
Как пример:
введите размерность массива:
ввели 10 - супер
ввели q - вылетела программа.
0
deadlock
376 / 356 / 23
Регистрация: 14.12.2010
Сообщений: 1,265
20.12.2010, 11:41 #7
а в первом случае что не устроило?
программа запрашивает ввод до тех пор, пока не получит число.
затем число в int и в размерность массива
0
Kenwood2010
48 / 59 / 14
Регистрация: 26.11.2010
Сообщений: 192
20.12.2010, 12:14  [ТС] #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
int *mas, s = 0, flag = 0;
cout<<"Vvedite razmer: ";
cin>>s;
// тут нужно проверить на правильность ввода
if(s > 0) //я сделал если число больше 0, а как сделать буквы
 {
  mas = new int [s];
  flag =1;
 }
getch();
if(flag==1) {delete mas;}
return 0;
}
0
20.12.2010, 12:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2010, 12:14
Привет! Вот еще темы с решениями:

Ограничение на ввод определённого кол-ва символов
Народ очень нужно сделать так, чтобы при вводе в какое-нибудь поле(string), оно...

Ограничение на ввод символов scanf() и cin
Здравствуйте. Возможно ли ограничить ввод символов после вызова scanf() или...

Ограничение на ввод (только целые числа)
Нужно задать ограничение на ввод только целых чисел. При вводе дробного числа...

Ограничение ввода.(цифр, букв и символов)
Мне нужно сделать ограничение ввода. Условие: 1) ввод 1, 2 или 3, если...


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

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

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