Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Я хочу запретить ввод букв. Как это сделать?

Ответить
Настройки темы
C/C++ - Я хочу запретить ввод букв. Как это сделать?

Пользователь


Сообщения: 147
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я хочу запретить ввод букв. Как это сделать?
гетч не предлагать хочется без гетча

Отправлено: 21:33, 09-06-2008

 

Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


DENoszone,
Цитата DENoszone:
Я хочу запретить ввод букв. Как это сделать? »
Куда запретить? Если компонет Edit в Borland C++ Builder то лучше использовать MaskEdit
Вопрос бедный, для каких целей? Где это нужно?

Код: Выделить весь код
// Функция ввода, проверяет ввод только цифр  А >= 0 или А <= 0, в Edit
void __fastcall TForm1::EditKeyPressPositivNumber(TObject *Sender, char &Key)
{
        if ((Key >= '0') && (Key <= '9') || Key == VK_BACK) {}  // цифры
        else if ((Key == '.') || (Key == ',')) // запятая
             else
                Key = 0; // не цифра
}

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 00:36, 10-06-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Drongo, автор ищет альтернативу обычной консольной функции getch().
DENoszone, в почему бы не дать юзеру ввести всё символы, что он желает, а потом выбрать из этой строчки только цифры?

Отправлено: 00:51, 10-06-2008 | #3


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


imho на чистом си (переносимом) изобразить не получится - надо привязываться к платформе - использовать winapi или прерывание dos.

Отправлено: 10:54, 10-06-2008 | #4


Пользователь


Сообщения: 147
Благодарности: 0

Профиль | Отправить PM | Цитировать


Admiral, эээ как???
ну это и есть то что я хочу...только если там имеются буквы то сказать досвидания и введите заново.
как осуществить?

Отправлено: 21:10, 10-06-2008 | #5


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Хотя бы так
Код: Выделить весь код
#include <stdio.h>
int main(int argc, char* argv[])
{
	int i;
	printf("\nHi! Please enter the NUMBERS only ");
	if ((scanf("%d",&i))!=0)
	{
		printf("\n Thanks! You enter number %d",i);
	}
	return 0;
}
Программа запишет первые цифры до ошибки пользователя. Тоесть набирать он может сколько угодно, но в переменную внесётся только первый символ если он был числом.

Отправлено: 03:43, 11-06-2008 | #6


Пользователь


Сообщения: 147
Благодарности: 0

Профиль | Отправить PM | Цитировать


оно закрывается..а как на повтор запросить?

Отправлено: 08:56, 11-06-2008 | #7


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Теперь ясно, что требовалось: названия темы предусматривает на любой введённый символ, если он не цифра, не реагировать, даже не отображать. Сам не задавался такой целью, но скорей всего это реализуется средствами платформы, как указал Busla.
Что б сделать повторы можно, например использовать цикл: while или repeat. Из этих двух предложенных repeat будет более логично, перевод же "повторить", всё же оно должно хотя бы раз спросить.

Отправлено: 12:56, 11-06-2008 | #8


Пользователь


Сообщения: 147
Благодарности: 0

Профиль | Отправить PM | Цитировать


не понял как

Отправлено: 22:04, 11-06-2008 | #9


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Admiral,
Цитата Admiral:
Из этих двух предложенных repeat будет более логично »
А вы не скажете это разве управляющая структура из С++ ?!

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:22, 11-06-2008 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Я хочу запретить ввод букв. Как это сделать?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как сделать запрет ввода букв в поле для ввода input zvezda_t Вебмастеру 2 28-12-2009 15:52
Драйвер - Как запретить (сделать невозможным!) установку новых драйверов ? softer111 Microsoft Windows Vista 3 23-08-2009 23:04
Ввод ключа после установки ОС.. Как это сделать? DooD Автоматическая установка Windows 2000/XP/2003 24 08-11-2007 10:41
как это сделать? yanvlad Защита компьютерных систем 9 03-05-2006 13:36
Как это сделать... bake-rolls Видео и аудио: обработка и кодирование 10 11-06-2005 20:42




 
Переход