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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Злобный
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 43
#1

Запрет ввода числа с точкой - C++

27.09.2010, 19:54. Просмотров 1547. Ответов 14
Метки нет (Все метки)

Как запретить ввод десятичных чисел? Напрягает, из-за этого прога падает. Плюс, не нашел вариантов проверки на наличие у числа десятичной части. Спасайте
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gGrn-7DA
мну довольно <(-__-)l
203 / 192 / 1
Регистрация: 17.01.2010
Сообщений: 2,392
Завершенные тесты: 1
27.09.2010, 19:59     Запрет ввода числа с точкой #2
парси(ищи) точку, что правее(вместе с точкой) отрезай и все...
Злобный
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 43
27.09.2010, 20:20  [ТС]     Запрет ввода числа с точкой #3
Нельзя, нужно ИМЕННО проверить число на целостность, и если !=, то запретить его ввод
Lord_Voodoo
Супер-модератор
8580 / 2180 / 61
Регистрация: 07.03.2007
Сообщений: 10,864
Завершенные тесты: 1
27.09.2010, 20:26     Запрет ввода числа с точкой #4
Злобный, а зачем?
берем помещаем простую конвертацию в конструкцию try catch и с удовольствием материм пользака за идиотизм... и прога падать перестанет... ну или обработчик нажатия кнопки созадем и пишем там:
C++
1
2
3
4
if (Key == '.'){
  Key = 0x00;
  ShowMessage("только целые числа принимаем!");
}
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
27.09.2010, 20:29     Запрет ввода числа с точкой #5
Вам надо, чтобы в режиме реального времени отслеживалась и не вводилась точка? Т.е. не после, а во время ввода числа?
Злобный
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 43
27.09.2010, 20:59  [ТС]     Запрет ввода числа с точкой #6
Цитата Сообщение от silent_1991 Посмотреть сообщение
Вам надо, чтобы в режиме реального времени отслеживалась и не вводилась точка? Т.е. не после, а во время ввода числа?
Нет, после ввода.

Добавлено через 2 минуты
Lord_Voodoo, а пример с try-catch можно? Просто я человек в этом деле новый, а препод грозился расстреливать за плагиат или если усомнится в том, что студент сам это сделал
Lord_Voodoo
Супер-модератор
8580 / 2180 / 61
Регистрация: 07.03.2007
Сообщений: 10,864
Завершенные тесты: 1
27.09.2010, 21:05     Запрет ввода числа с точкой #7
Злобный, а хелпом он тоже запретил пользоваться?

C++
1
2
3
4
5
6
7
8
int i = 0;
//....
try{
  i = StrToInt(Edit1->Text);
}catch(...){
  i = 0;
  ShowMessage("Yеправильный формат данных!");
}
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
27.09.2010, 21:09     Запрет ввода числа с точкой #8
Lord_Voodoo, вот за try...catch его точно расстреляют.

Злобный, а строки уже изучали?

Добавлено через 1 минуту
И напишите, какое приложение консольное или оконное.
gGrn-7DA
мну довольно <(-__-)l
203 / 192 / 1
Регистрация: 17.01.2010
Сообщений: 2,392
Завершенные тесты: 1
27.09.2010, 21:13     Запрет ввода числа с точкой #9
C++
1
2
3
4
5
i = StrToDouble(Edit1->Text);
if((i - (int)i) != 0){
    ShowMessage("Yеправильный формат данных!");
    //...
}
а если так?
Lord_Voodoo
Супер-модератор
8580 / 2180 / 61
Регистрация: 07.03.2007
Сообщений: 10,864
Завершенные тесты: 1
27.09.2010, 21:16     Запрет ввода числа с точкой #10
.::.DIMA.::., да что за глупость... а если кто-то использует тпп данных int - никому больше нельзя его юзать?
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
27.09.2010, 21:18     Запрет ввода числа с точкой #11
По-моему проще всего считывать число в строку, искать в ней точку, при нахождении послать пользователя, иначе загнать строку в int с помощью соответствующей функции и продолжать работу...
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
27.09.2010, 21:37     Запрет ввода числа с точкой #12
Lord_Voodoo, я в том смысле, что автор ещё не проходил исключения, и try...catch вызовет у преподавателя определённые вопросы.
gGrn-7DA
мну довольно <(-__-)l
203 / 192 / 1
Регистрация: 17.01.2010
Сообщений: 2,392
Завершенные тесты: 1
27.09.2010, 21:43     Запрет ввода числа с точкой #13
Ладно никто regex не предложил=)
Злобный
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 43
28.09.2010, 00:28  [ТС]     Запрет ввода числа с точкой #14
1. На лекциях проходим что-то... Непонятно вообще, как всё устроено там... В общем-то, упор на самообразование или что-то типа того
2. вот кусок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
          int n;
          int m;
          cout << "Введи начало интервала: ";   
          cin >> n;
while (!cin.good()) 
                {
                cin.clear ();
                cin.ignore (256, '\n');
                cout << "Ещё раз: "; 
                cin >> n;
                }
          cout << "Введи конец интервала: ";
          cin >> m;
          while (!cin.good(), m<n) 
                {
                cin.clear ();
                cin.ignore (256, '\n');
                cout << "Ещё раз: "; 
                cin >> m;
                }
Конкретно здесь есть возможность поставить эту... Проверку? Или как её ещё назвать...
З.Ы.
У Страуструпа про трай-кэтч слишком мудрёно написано, у Пратта - практически в конце книги(то есть, по идее, расчитано как на конец курса), более понятно, но все равно много неясного [чтоб не было язвительно-дебильных замечаний типа "иди читай-учись-убейся" ]
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2010, 10:04     Запрет ввода числа с точкой
Еще ссылки по теме:
C++ Запрет ввода символов, отличных от цифр
C++ Запрет ввода символов в поле Edit
Конструирование значения целого числа или числа с плавающей точкой по его дампу C++
C++ Запрет ввода любых символов кроме цифр в консоли
C++ Ввод в консоле только чисел(запрет ввода других символов)

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

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
28.09.2010, 10:04     Запрет ввода числа с точкой #15
Злобный, вот было уже: Re: ошибка при вводе в неправильном формате
Yandex
Объявления
28.09.2010, 10:04     Запрет ввода числа с точкой
Ответ Создать тему
Опции темы

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