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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Levanoff
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 31
#1

Как проверить какой тип данных вводится? - C++

05.01.2011, 21:18. Просмотров 1475. Ответов 17
Метки нет (Все метки)

Доброго времени суток.
Подскажите пожалуйста!С клавиатуры вводится два целых числа.Как после ввода проверить,что было введено именно int,а не что-то другое?Вопрос не сложный,я думаю.
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2011, 21:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как проверить какой тип данных вводится? (C++):

Enum и типы данных. Как задать тип значений явно, и какой тип будет при переполнении? - C++
Пытаюсь сделать функцию с передачей нескольких параметров,используя битовые операции. В качестве параметров думаю использовать не...

Путаница с типами данных TCHAR и char. Какой тип данных выбрать? - C++
Я создавал тему в соседнем разделе:http://www.cyberforum.ru/cpp-networks/thread1119035.html Насколько я понял, то POST-данные в TCHAR...

Проверить на тип вводимых данных - C++
Опыта в программировании у меня нету,всего пару дней :) поэтому может вопрос и глупый, тем не менее: Вобщем простенькая функция с...

Геометрическая прогрессия: какой тип данных определить - C++
Привет, форумчане! В CPP я еще очень и очень зеленый, поэтому, нужна ваша помощь. Есть проблема с определением типа данных для...

Какой тип данных нужен для возведения в степень - C++
Добрый день. При возведении числа в степень столкнулся с проблемой, что при возведении числа 9 в 8 степень (как пример) выдает абракадабру...

Какой тип данных использовать для работы с большими числами? - C++
Здравствуйте! Какой тип данных можно использовать для больших чисел( unsigned long long не получается)?

17
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
05.01.2011, 21:19 #2
Ввод производи в строку, потом проверяй ее, а потом переводи в int
0
Levanoff
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 31
05.01.2011, 21:47  [ТС] #3
Спасибо за помощь!
Буду тренироваться)
0
Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
05.01.2011, 21:51 #4
Вот ещё один вариант !

C++
1
2
3
4
5
6
7
8
9
10
#include<iostream.h>
#include<conio.h>
main()
{
      int a, b; double a1, b1;
      cin>>a1>>b1; a=a1; b=b1;
      if (a==a1 && b==b1) cout<<"\n\nThis is int";
      else cout<<"\n\nThis isn't int";
      getch();
}
1
Sokolov
42 / 42 / 3
Регистрация: 04.01.2011
Сообщений: 125
05.01.2011, 22:04 #5
Хороший код

Добавлено через 4 минуты
Вот что у меня получилось с помощью метода, который предложил Алексaндр,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
int main(void)
{setlocale(LC_ALL,"Russian");
int a,b; float a1,b1;
cout<<"Введите первое число: ";
cin>>a1;
cout<<"Введите второе число: ";
cin>>b1;
a=a1;
b=b1;
cout<<"Первое число имеет тип "<<(a==a1 ? "int" : "отличный от int")<<endl;
cout<<"Второе число имеет тип "<<(b==b1 ? "int" : "отличный от int")<<endl;
return 0;}
0
Levanoff
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 31
05.01.2011, 22:20  [ТС] #6
А что если ввиду букву?
0
Sokolov
42 / 42 / 3
Регистрация: 04.01.2011
Сообщений: 125
05.01.2011, 22:25 #7
Цитата Сообщение от Levanoff Посмотреть сообщение
С клавиатуры вводится два целых числа.
А если по сути, я не знаю ))
0
Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
05.01.2011, 22:28 #8
Я проверял на буквах. Тоже работает.=)
0
Levanoff
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 31
05.01.2011, 22:34  [ТС] #9
Ну да,это я не точно написал.=)
Короче,в моей программке нужно ввести два числа(номер клиента и пароль).Вот и необходимо проверить,что ввел пользователь.Потому что,если ввести какой нибудь знак,программа зависает.А надо,что бы она снова просила ввести номер.Вот эта проверка и не получается.
0
Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
05.01.2011, 22:36 #10
Levanoff, ну уже получилось ?
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
05.01.2011, 22:36 #11
считываешь строкой, а потом проход по строке с проверкой isdigit(str[i]);
0
Levanoff
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 31
05.01.2011, 22:46  [ТС] #12
Один из комментариев с кодом удалили.
Сейчас вставлю оставшийся.
Через несколько минут отпишу результат.
0
Sokolov
42 / 42 / 3
Регистрация: 04.01.2011
Сообщений: 125
05.01.2011, 22:48 #13
Алексaндр, как вы проверяли с буквами? Ведь если вы с клавиатуры ввели букву, то она должна присвоиться переменной типа double
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
05.01.2011, 22:54 #14
Вот как можно организовать проверку:
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
#include <stdio.h>
#include <stdlib.h>
 
int isCorrectId(char* id)
{
    while(*id)
    {
        if(!isdigit(*id))
            return 0;
        ++id;
    }
    return 1;
}
 
int main()
{
    char id[5]; // Номер
    puts("Input client's id:");
    scanf("%4s", id);
    if(isCorrectId(id))
        // Номер правильный, дальше его можно перевести в int
        printf("Client's id is a correct number: \'%s\'\n", id);
    else
        printf("Client's id is incorrect\n");
    return 0;
}
0
Levanoff
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 31
05.01.2011, 22:55  [ТС] #15
Я только сейчас проверил.
С числами работает,а с буквами нет.
Ввел букву,программа зависла и начала бесконечно печатать "повторите ввод".
0
05.01.2011, 22:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2011, 22:55
Привет! Вот еще темы с ответами:

Какой тип данных правильный при определении времени выполнения? - C++
Народ, какой тип данных привильный. При прирывании счетчик повышает значение на 1(левая колонка), в правой микросекунды. Отрывок кода ...

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

Какой тип данных лучше подойдет для приложения, которое делит числа int или float? - C++
Ответ написал int Хотя нутром чую, что float

Какой символьный тип использует тип std::string? - C++
Какой тип данных использует класс String? Char? И написано ли это в в документе #include &lt;string&gt;?


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

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

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