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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ограничение! - C++
Может кто-нибудь мне помочь как сделать ограничитель то есть вот у меня код и мне нужно чтоб ______________________________ ...

Ограничение символов - C++
Проблема с работой программы. Пользователь должен ввести число (ограниченное до 1000 символов) и программа выводитделится ли число на...

Ограничение char - C++
var c:char; if c in then begin ... end; Как сделать в с++?

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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;
Андрейка
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;
}
Кирюха
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, или любой другой и делать проверку какие символы были введены
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++
Кирюха
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;
}
}
Yandex
Объявления
10.11.2009, 19:30     Ограничение ввода
Ответ Создать тему
Опции темы

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