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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 44, средняя оценка - 4.80
Welemir
3 / 3 / 0
Регистрация: 26.09.2009
Сообщений: 104
#1

Проверка типа вводимых данных. - C++

01.10.2009, 18:38. Просмотров 5917. Ответов 10
Метки нет (Все метки)

Собственно,как осуществить ?

К примеру,здесь:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main() {
    
    int x;
    int y;
    cin >> x;
    y = (int) x;
    if (x != y) {
            
            cout << "ERROR!";
            getch();
            
            }
            
            else {
                 
                 cout << x;
                 getch();
                 
                 }
                 
                 }
Думал,прокатит...Походу компиль автоматом переводит строку в её числовое представление,хоть и непонятно,какое.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2009, 18:38     Проверка типа вводимых данных.
Посмотрите здесь:

Проверка вводимых данных на соответствие типа - C++
Задание само очень простое - вычитание матриц, с помощью перегрузки функций (одна функция вычитает типы short, другая long double). ...

Проверка вводимых данных - C++
Доброго времени суток, форумчане. Я столкнулся с такой проблемой: при введении еденицы измерения, если та инициализирована ранее то все...

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

Проверка вводимых данных - C++
Вот часть программы int main(void) { int vop; setlocale(LC_ALL, &quot;Russian&quot;); int mas1, mas2, mas3, outmas; int ke1, ke2,...

Проверка вводимых данных - C++
#include &lt;iostream&gt; using namespace std; int main() { double a, b, c; cout &lt;&lt; &quot;Enter the first side of the...

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

Проверка на коректность вводимых данных - C++
Есть такой код где данные вводятся целого типа( int x; cin &gt;&gt; x; ). Вопрос такой как проверить действительно ли введено число либо нет...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
01.10.2009, 19:08     Проверка типа вводимых данных. #2
компилятор нормальный, просто иногда полезно понимать что ты заставляешь делать компилятор. Вот эта строка
C++
1
(int) x
возвращает ASCII код числа записанного в x. Так например если в x будет записан 0, то вполне естественно, что в y будет не 0, как ты предполагал, а ровно 48!
Если интересно, то смотри аттач
Вложения
Тип файла: rar ASCII.rar (3.8 Кб, 70 просмотров)
Rififi
2338 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
01.10.2009, 19:10     Проверка типа вводимых данных. #3
Welemir,
Походу компиль автоматом переводит строку в её числовое представление

а нафига ты строку пытаешься запихнуть в число?
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
01.10.2009, 19:16     Проверка типа вводимых данных. #4
Собственно строки-то никакой и нет. Это не java и не C# которые читают сначала строки.
Welemir, почитай книгу что-ли. Просто допускать такие элементарные ошибки...
breeve
75 / 75 / 14
Регистрация: 01.08.2009
Сообщений: 177
01.10.2009, 19:48     Проверка типа вводимых данных. #5
Я прочитал и решил попробовать.
И че то не пойму, а как так сделать. я если пишу:
C++
1
y =(int)x;
то он мне выводит число, я введу 5 он мне 5. если введу букву то ничего не выводит сразу закрывает. Если поменяю х на чар тоже закрывает. ничего не понимаю.
Welemir
3 / 3 / 0
Регистрация: 26.09.2009
Сообщений: 104
01.10.2009, 20:39  [ТС]     Проверка типа вводимых данных. #6
А название темы ни о чём не говорит ?.Мне нужно определить,какие данные вводит пользователь.В рнр это можно сделать,так почему же в С/С++ нельзя ?Хотя... неужели коды каждого символа проверять?))).
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
01.10.2009, 20:56     Проверка типа вводимых данных. #7
Цитата Сообщение от Welemir Посмотреть сообщение
А название темы ни о чём не говорит ?.Мне нужно определить,какие данные вводит пользователь.В рнр это можно сделать,так почему же в С/С++ нельзя ?Хотя... неужели коды каждого символа проверять?))).
да, а почему нет? их всего-то 255. цифры сгрупированны, буквы тоже кучно идут.
Welemir
3 / 3 / 0
Регистрация: 26.09.2009
Сообщений: 104
01.10.2009, 21:05  [ТС]     Проверка типа вводимых данных. #8
Да нет,просто полагал,что есть какой-нибудь оператор проверки типо is_int(),(int) или gettype(),как в РНР...Просто,на мой взгляд,это не слишком-то рациональное решение...

Добавлено через 1 минуту
Цитата Сообщение от breeve Посмотреть сообщение
то он мне выводит число, я введу 5 он мне 5. если введу букву то ничего не выводит сразу закрывает. Если поменяю х на чар тоже закрывает. ничего не понимаю.
Полагаю,дело ещё и в компиляторе...Некоторые из них могут вообще чудеса творить...
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
01.10.2009, 22:57     Проверка типа вводимых данных. #9
Цитата Сообщение от Welemir Посмотреть сообщение
Полагаю,дело ещё и в компиляторе...Некоторые из них могут вообще чудеса творить...
Welemir, запомни главное правило начинающего программиста:
"Компилятор всегда прав!"
посмотри этот
код
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
int main()
{
    char s;
    std::cin>>s;
    if(isdigit(s))
        std::cout<<"digit"<<std::endl;
    else
        std::cout<<"symbol"<<std::endl;
    system("pause");
    return 0;
}
или делай проверку по коду символа
Monte-Cristo
2787 / 1373 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
01.10.2009, 23:02     Проверка типа вводимых данных. #10
M128K145, для isdigit() вроде бы ctype.h нужен.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2009, 23:10     Проверка типа вводимых данных.
Еще ссылки по теме:

Посимвольная проверка вводимых данных - C++
Доброго времени суток. Такая проблема: нужно запретить пользователю вводить не цифры и дробные числа через запятую. т.е. 4213 -...

Проверка корректности вводимых данных - C++
Есть программа на проверку високосного года. Преподаватель при проверке вводит &quot;5 Аотао&quot; к примеру и программа читает первое число и...

Портирование кода на С++ (проверка вводимых данных пользователем на корректность) - C++
Требуется портировать код с С# на С++. Код на шарпе - очень простой. В нем не используются языковые особенности шарпа, перевести, я думаю,...

Проверка типа данных при вводе - C++
Задача: реализовать проверку на то, что пользователь ввёл целое число. Нашёл это: //Зачем использовать шаблон? template&lt;class T&gt;...

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


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

Или воспользуйтесь поиском по форуму:
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
01.10.2009, 23:10     Проверка типа вводимых данных. #11
Monte-Cristo, да нет вроде. У меня и так работает, хотя isdigit действительно описан в ctype.h
Yandex
Объявления
01.10.2009, 23:10     Проверка типа вводимых данных.
Ответ Создать тему
Опции темы

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