Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/58: Рейтинг темы: голосов - 58, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 11

Ограничение ввода

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

Студворк — интернет-сервис помощи студентам
Как сделать так, чтобы пользователь мог вводить только числа и при попытке ввода чего-либо другого выдавалось соответственное сообщение? Желательна ещё проверка на ввод исключительно знаков "+, -, *, /, ^". Заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.11.2009, 15:00
Ответы с готовыми решениями:

Ограничение ввода
Нужно ограничить ввод заполнения строки. Допустим, пользователь отказался использовать цифры и символы верхнего регистра при заполнении...

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

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

5
 Аватар для Sekt
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
10.11.2009, 16:03
C++
1
2
3
4
5
6
7
8
char a;
if(a=="1234567890")
{
...
}
int i;
i=atoi(a);
std::cout<<i;
0
425 / 229 / 87
Регистрация: 25.03.2009
Сообщений: 744
10.11.2009, 16:11
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
 Аватар для Кирюха
33 / 31 / 6
Регистрация: 10.11.2009
Сообщений: 123
10.11.2009, 16:36
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
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 11
10.11.2009, 16:52  [ТС]
Всё правильно, спасибо

Добавлено через 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
 Аватар для Кирюха
33 / 31 / 6
Регистрация: 10.11.2009
Сообщений: 123
10.11.2009, 19:30
я бы не стал добавлять в каждую функцию одни и те же действия. можно было бы в 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.11.2009, 19:30
Помогаю со студенческими работами здесь

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

Ограничение ввода в int
Здравствуйте, как можно ограничить ввод в переменную типа int? У меня есть переменная dH, в которой пользователь должен записать час...

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

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

Ограничение на длину ввода поля
К примеру есть дата День месяц год Как поставить ограничение чтобы пользователь мог написать только 2018,не больше 4 символов,и так же...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru