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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.95
Grotex
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 11
#1

Ограничение ввода - C++

10.11.2009, 15:00. Просмотров 3876. Ответов 5
Метки нет (Все метки)

Как сделать так, чтобы пользователь мог вводить только числа и при попытке ввода чего-либо другого выдавалось соответственное сообщение? Желательна ещё проверка на ввод исключительно знаков "+, -, *, /, ^". Заранее спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2009, 15:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ограничение ввода (C++):

Ограничение ввода! Подскажите! - C++
Подскажите как ограничить ввод для значений a и b? нужны только числа совершенно в этом не шарю..

Ограничение ввода с клавиатуры - C++
Доброго времени суток. Ребят такой вопрос: Как ограничить ввод данных с клавиатуры. Если точнее: прдставте себе что юзер заснул на...

Ограничение ввода символов - C++
Здравствуйте. Пишу программку вроде калькулятора, возникла проблема, если вводить не цифры программа соответственно зависает.. Как можно...

Ограничение ввода символов. - C++
Здравствуйте, подскажите пожалуйста как ограничеть ввод символолв в программе с помощью кода. Тоесть, например я хочу чтобы в данной...

Ограничение времени ввода. - C++
нада дать юзеру 10 сек на ввод значения Х. Еси он провтыкал 10 сек, то стандартно Х = 0. в худшем случае дать возможность 10 секунд...

Ограничение ввода арифметических символов - C++
сам код #include <iostream> #include <locale> using namespace std; int main() { setlocale(LC_ALL, "rus"); unsigned char...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
10.11.2009, 16:03 #2
C++
1
2
3
4
5
6
7
8
char a;
if(a=="1234567890")
{
...
}
int i;
i=atoi(a);
std::cout<<i;
0
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
10.11.2009, 16:11 #3
Grotex,
быть может что то типа такого
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
int main()
{
    int i ;
    std::cin >> i ;
    if (std::cin.fail())
        std::cout << " error " ;
    return 0;
}
0
Кирюха
32 / 30 / 2
Регистрация: 10.11.2009
Сообщений: 123
10.11.2009, 16:36 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
void main()
{
     int input;
     cout << "Input ";
     cin >> input;
     if(!cin.fail())
      cout << "This is INT " << endl;
     else
         cout <<"This is NOT INT"<< " :)\n";        
}
Добавлено через 8 минут
не, помоему мы не то парню советуем.. он хочет чтобы там еще ограничение было на символы такие как + - / , итд... тут наверно надо не жестко int задавать, а char, или любой другой и делать проверку какие символы были введены
0
Grotex
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 11
10.11.2009, 16:52  [ТС] #5
Всё правильно, спасибо

Добавлено через 10 минут
Хотя нет, не совсем.
Допустим как в этом коде сделать проверку на вводимые числа в процедурах?

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include<stdio.h>
#include<conio.h>
#include<math.h>
 
void plus()
{
 int a,b;
 printf("Vvedite 2 chisla cherez probel dlja slozenija: ");
 scanf("%d",&a);
 scanf("%d",&b);
 printf("%d+%d=%d",a,b,a+b);
}
 
void minus()
{
 int a,b;
 printf("Vvedite 2 chisla cherez probel dlja vichitanija: ");
 scanf("%d",&a);
 scanf("%d",&b);
 printf("%d-%d=%d",a,b,a-b);
}
 
void delit()
{
 int a,b;
 printf("Vvedite 2 chisla cherez probel dlja delenija: ");
 scanf("%d",&a);
 scanf("%d",&b);
 printf("%d/%d=%d",a,b,a/b);
}
 
void umnozit()
{
 int a,b;
 printf("Vvedite 2 chisla cherez probel dlja umnozenija: ");
 scanf("%d",&a);
 scanf("%d",&b);
 printf("%d*%d=%d",a,b,a*b);
}
 
void stepen()
{
 int a,b,r;
 printf("Vvedite 2 chisla cherez probel dlja vozvedenija v stepen: ");
 scanf("%d",&a);
 scanf("%d",&b);
 r=1;
 for (int i=1;i<=b;i++) r*=a;
 printf("%d^%d=%d",a,b,r);
}
 
void main()
{
char znaki[15];
int chisla[20];
int i;
char ch;
START:
 clrscr();
 printf("Vvedite znak: ");
 switch(getche())
 {
  case '+': clrscr(); plus(); getche(); goto START;
  case '-': clrscr(); minus(); getche(); goto START;
  case '/': clrscr(); delit(); getche(); goto START;
  case '*': clrscr(); umnozit(); getche(); goto START;
  case '^': clrscr(); stepen(); getche(); goto START;
  case 'e': goto END;
 }
 goto START;
 END:
}
P.s. Компилятор эры динозавров - Borland C++
0
Кирюха
32 / 30 / 2
Регистрация: 10.11.2009
Сообщений: 123
10.11.2009, 19:30 #6
я бы не стал добавлять в каждую функцию одни и те же действия. можно было бы в main вставить

printf("Vvedite 2 chisla cherez probel dlja vozvedenija v stepen: ");
scanf("%d",&a);
scanf("%d",&b);

а потом a и b передать в функцию... ну да ладно.. это дело вкуса))

а что не получается то? просто вставь в каждую ф-цию проверку, вот и все. я бы написал тебе код, но с борланом не дружу. боюсь не пойдет у тебя мой код.
например вот так попробуй..

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void umnozit()
{
 int a,b;
 cout << "Input" << endl;
cin >> a;
 cin >> b;
if(cin.fail())
{
          cout << endl << "ERROR! " << endl;
}
else 
{
cout << a*b;
}
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2009, 19:30
Привет! Вот еще темы с ответами:

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

Ограничение ввода(цифр, букв и символов) - C++
Здравствуйте ! Мне нужно сделать ограничение ввода. Я его прописал, для ввода длины и количества паролей, но не могу для ввода куда...

Прерывание ввода при израсходовании попыток ввода пароля - C++
Этот цикл (приведенный ниже) проверяет пароль пользователя - это слово &quot;пароль&quot;.Для ввода пароля пользователь может сделать три...

Как можно бы создать метод для ввода размерности (т.е. для ввода private переменных n,m)? - C++
Как можно бы создать метод для ввода размерности (т.е. для ввода private переменных n,m)? ( что только я не пробывал: то переменные...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.11.2009, 19:30
Ответ Создать тему
Опции темы

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