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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Donville
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 113
#1

Как разрешить ввод только чисел типа int? - C++

17.02.2014, 00:32. Просмотров 1282. Ответов 7
Метки нет (Все метки)

Доброго времени суток. Подскажите, пожалуйста, как разрешить ввод только чисел типа int. Преподаватель очень любит заваливать на этом, введя например букву, там где нужно число. Очень важно, чтобы код был негромоздким.

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
#include <iostream>
#include <cstdio>
#include <conio.h>
 
using namespace std;
 
int roman (int,int,char);
int main()
{
    int a;
    cout << "Enter the number\n";
    cin >> a;
    if (a < '0') || (a > '9')
    {
        cout << "Good"
    }
    while (a<=0)
    {
        cout << "Enter positive number\n";
        cin >> a;
    }
    cout << "Your number is ";
    a=roman(a,1000,'M');
    a=roman(a,500,'D');
    a=roman(a,100,'C');
    a=roman(a,50,'L');
    a=roman(a,10,'X');
    a=roman(a,5,'V');
    a=roman(a,1,'I');
    getch();
    return 0;
}
int roman(int i,int j,char c)
{
    while (i>=j)
    {
        putchar(c);
        i=i-j;
    }
     return(i);
}
П. С. на форуме перечитал с этим все, что смог найти связанное, но там коды большие или зацикленные. Спасибо за понимание!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2014, 00:32     Как разрешить ввод только чисел типа int?
Посмотрите здесь:
C++ Ограничение на ввод символов (разрешить ввод только цифр)
C++ Определите объединения, элементами которого являются массивы из трех чисел типа long и с шести чисел типа int
Ввод символа в переменную типа INT C++
Защита от дурака. Ввод данных типа int с клавиатуры. C++
как осуществить ввод только чисел C++
C++ Как разрешить ввод пустой сроки в консоли?
Как передать 0 в функцию типа f (int, int&) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
The_Prophet
8 / 8 / 0
Регистрация: 13.01.2013
Сообщений: 177
17.02.2014, 00:38     Как разрешить ввод только чисел типа int? #2
Donville, а что вы за код предоставили?
Опишите пожалуйста задачу точнее... нельзя даже вводить буквы, или при попытке ввода букв они не должны приниматься, выдавая соответствующее сообщение?
Как я понимаю вы в консоле Builder'а это пишите?
Donville
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 113
17.02.2014, 00:52  [ТС]     Как разрешить ввод только чисел типа int? #3
Пользуюсь я программой CodeBlocks. В обычной консоли происходит ввод всех данных. Программа выше переводит введенное пользователем число из арабской системы в римскую. Из вышеперечисленых Вами вариантов оба подходят.
The_Prophet
8 / 8 / 0
Регистрация: 13.01.2013
Сообщений: 177
17.02.2014, 02:12     Как разрешить ввод только чисел типа int? #4
Donville, ого... и где это преподают на кодблоке?)
Держи... ток библиотеку <ctype.h> к своим добавь.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main(int argc, char* argv[])
{
 int ch,i,check;
 char Key[20];
m1:
 check = 0;
 cin >> Key;
 for(i=0;i<strlen(Key);i++)
  if(isdigit(Key[i])==false) check++;
 if (check==0)  { /* Перевод в римские*/ }
 else{
  cout << "\nPojaluista, vvedite chislo:\n";
  goto m1;
 }
        return 0;
}
Добавлено через 2 минуты
Donville, и если ты сюда чисто свой код кинул, то работать не будет, хотя бы потому что библиотеки неправильные объявлены)) нужны эти
C++
1
2
3
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
Хотя я в кодблоке не бывал. Может там либки такие корявые и так надо...
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.02.2014, 04:02     Как разрешить ввод только чисел типа int? #5
Цитата Сообщение от The_Prophet Посмотреть сообщение
и где это преподают на кодблоке?
А где это преподают goto использовать?

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
// в строке ввода только цифры, перед которыми могут быть + или -.
int a;
while (!(cin >> a) || (cin.peek() != '\n'))
{
    cin.clear();
    while (cin.get() != '\n');
    cout << "Error!" << endl;
}
The_Prophet
8 / 8 / 0
Регистрация: 13.01.2013
Сообщений: 177
17.02.2014, 08:50     Как разрешить ввод только чисел типа int? #6
alsav22, я думаю везде))
Напиши он код, который вы дали, преподаватель сразу почуял бы неладное. Однозначно)
stikkas
19 / 19 / 6
Регистрация: 26.01.2014
Сообщений: 56
17.02.2014, 09:39     Как разрешить ввод только чисел типа int? #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
int i;
cin >> i;
if (!cin)
  throw "Not number"
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2014, 10:10     Как разрешить ввод только чисел типа int?
Еще ссылки по теме:
C++ Передать массив элементов(типа int) объекта, в функцию из массивов(типа int)
как осуществить ввод только нечетных целых чисел? C++
C++ Преобразовать сроку чисел CHAR в массив чисел типа int
C++ Создать файл из значений типа int, вывести только чётные его элементы
Аргумент типа int не совместим с параметрами типа int* C++

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

Или воспользуйтесь поиском по форуму:
SatanaXIII
Супер-модератор
Эксперт С++
5593 / 2627 / 240
Регистрация: 01.11.2011
Сообщений: 6,461
Завершенные тесты: 1
17.02.2014, 10:10     Как разрешить ввод только чисел типа int? #8
Безопасный ввод через функцию-шаблон
Yandex
Объявления
17.02.2014, 10:10     Как разрешить ввод только чисел типа int?
Ответ Создать тему
Опции темы

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