Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > С/С++
Перезагрузить страницу Проверка правильности ввода
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
SpiritDoggy SpiritDoggy вне форума
Новичок
 
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 27.12.2011
По умолчанию Проверка правильности ввода - 05.01.2012, 23:50

Добрый вечер, сегодня возникла такая вот задача.
Мне нужно чтобы при вводе через cin, допускался ввод только одного символа(char), т.е нужно огранить ввод,чтобы это было не число, нельзя чтобы было сразу 2 символа подряд и больше, чтобы не было в перемешку чисел и символов, и тому подобное.
Не подскажите, как это реализовать?
Ответить с цитированием
  (#2 (permalink)) Старый
Valdemarr Valdemarr вне форума
Member
 
Сообщений: 73
Сказал(а) спасибо: 0
Поблагодарили 4 раз(а) в 4 сообщениях
Регистрация: 06.12.2011
По умолчанию 06.01.2012, 00:00

Не совсем понял что тебе надо.
cin.get() считывает из потока только один символ.
cpp Код:
char c;
cin.get(c);
А что потом с ним делать решай сам.
Если надо не число то просто проверяешь его на принадлежность к числу.
cpp Код:
bool is_number=(c>='0'&&c<='9');
Ответить с цитированием
  (#3 (permalink)) Старый
SpiritDoggy SpiritDoggy вне форума
Новичок
 
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 27.12.2011
По умолчанию 06.01.2012, 00:15

Про cin.get(c), я знаю что считывает один символ, но если использовать эту функцию, то если я введу "аноп", то он в переменную "с" поместит символ "а", ведь так? проигнорировав остальные, и не выдав ошибки, а надо чтобы если больше одного символа, то уже ошибка.
Ответить с цитированием
  (#4 (permalink)) Старый
Kingston Kingston вне форума
Любитель читать книги
 
Сообщений: 60
Сказал(а) спасибо: 6
Поблагодарили 3 раз(а) в 3 сообщениях
Регистрация: 21.10.2011
По умолчанию 06.01.2012, 00:26

в программу добавляйте заголовочный файл conio.h и используйте функцию getche()
char a = 'a'; //необходимо задавать начальное значение
a = getche(); //результат работы функции getche() присвоили переменной "a"
cout << a;
//Вот это все что я знаю, а как с помощью cin сделать... это пока остается вопросом для меня
Ответить с цитированием
  (#5 (permalink)) Старый
Kingston Kingston вне форума
Любитель читать книги
 
Сообщений: 60
Сказал(а) спасибо: 6
Поблагодарили 3 раз(а) в 3 сообщениях
Регистрация: 21.10.2011
По умолчанию 06.01.2012, 00:30

Число то же является символом, в данном случае. Так что если будет введено допустим: 123
то это будет считаться числом. Т.к. тип char!
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
SpiritDoggy SpiritDoggy вне форума
Новичок
 
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 27.12.2011
По умолчанию 06.01.2012, 00:37

Вот именно все ситуации и надо исключить >< Т.е если ввели 123, то он должен сказать извините, мне нужна буква.
Ответить с цитированием
Пользователь сказал cпасибо:
Kingston (06.01.2012)
  (#7 (permalink)) Старый
Kingston Kingston вне форума
Любитель читать книги
 
Сообщений: 60
Сказал(а) спасибо: 6
Поблагодарили 3 раз(а) в 3 сообщениях
Регистрация: 21.10.2011
По умолчанию 06.01.2012, 00:49

оо... придумал, функция getch() она без подтверждения запрашивает ввод чего - либо! так вот что я придумал нужно создать массив с англиским алфавитом! вот потом введеный символ проверить с помощью цикла for с элементами массива! и получается если цикл for пробегается по всем элементам массива и встречает там введеный символ то он выводит вы ввели символ такойто...
если же он прошел по всем элементам массива и не встретил, то там с помощью булевых переменных через иф. короче лучше пойду спать а то голова не варит в двенадцать ночи, когда мне 13 лет, так что капайся сам.
Ответить с цитированием
  (#8 (permalink)) Старый
SpiritDoggy SpiritDoggy вне форума
Новичок
 
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 27.12.2011
По умолчанию 06.01.2012, 01:37

Всем спасибо, решил проблему по другому =)
Ответить с цитированием
  (#9 (permalink)) Старый
Kingston Kingston вне форума
Любитель читать книги
 
Сообщений: 60
Сказал(а) спасибо: 6
Поблагодарили 3 раз(а) в 3 сообщениях
Регистрация: 21.10.2011
По умолчанию 06.01.2012, 12:39

Молодец.
Ответить с цитированием
  (#10 (permalink)) Старый
rotmaister rotmaister вне форума
программист-недосамоучка
 
Сообщений: 94
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
Регистрация: 23.03.2010
Адрес: город Сибай
По умолчанию 07.01.2012, 00:43

Елки палки все уже давно решено до вас)) Вот функция для проверки на дурака, которую я самолично составил(в прошлом году). Использовать просто, например так:
c Код:
float val = get_f_num_for();
значение val будет запрошено, но Если пользователь решит ввести буквы, то у него ничего не выйдет. Короче прикольная штукА, но я не стал ее дорабатывать. Постить тут весь код - громоздко, да и мне посещаемость нужна. Короче переходим по ссылке и смотрим.
Проверка на дурака, при вводе цифр из консоли. Блог програмиста-недосамоучки
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PCI устройство ввода Mori Разное 11 09.01.2012 11:39
Проверка правильности логического следования методом резолюции MasyaBasya Prolog 1 12.05.2011 19:04
Проверка правильности ввода данных Yulush С/С++ 3 23.10.2010 20:34
Проверка ввода Глупыш Prolog 6 22.10.2005 21:21
Edit для ввода даты tusha C++ Builder 3 24.07.2005 03:19
Очистка строки ввода imported_Seal DHTML, JavaScript, VBScript 8 24.05.2005 16:13
Проверка правильности заполнения формы RikWeb DHTML, JavaScript, VBScript 0 30.04.2005 08:52
Компонента для ввода IP адреса LONGOBARD Delphi 1 28.02.2005 21:36
правильность ввода Bonnie PHP 4 17.06.2004 17:42
Перенаправление ввода/вывода psi WinAPI 1 30.03.2004 19:13
Как попарсить строку ввода bdfy1 С/С++ 8 12.02.2004 20:26
Фокус ввода как с ним работать Puccini WinAPI 2 21.11.2003 06:39



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов