Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2011, 19:35   #1
Натаниэль
 
Регистрация: 30.10.2011
Сообщений: 4
По умолчанию проверка на ввод

Подскажите пожалуйста как сделать проверку, которая говорила бы ввёл ли пользователь что-нибудь(с клавиатуры), если да, то возвращался бы последний введённый символ, если нет, то просто пошли бы следующие операции.
Натаниэль вне форума Ответить с цитированием
Старый 23.11.2011, 21:55   #2
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

если я не ошибаюсь есть такая процедура как " keypressed " которая выводит на экран нажатые пользователем клавиши.
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 24.11.2011, 16:23   #3
somwan
Пользователь
 
Регистрация: 05.11.2008
Сообщений: 33
По умолчанию

А для какого компилятора то?
Я работаю в BORLANDC 3.1 там есть функция kbhit(); которая возвращает не нулевое значение в случае нажатия какой либо клавиши на клавиатуре, и 0 - если ничего не нажато. А так же есть функция getche() - получающая символ с клавиатуры. Можно было бы написать так:

Код:
int s;
if(kbhit())
   s = getche();
тут потребуется два нажатия на клавишу, первое чтобы удовлетворить условие, а второе - собственно ввод символа. Если предполагается что пользователь введёт > одного символа, то этот вариант будет работать.
somwan вне форума Ответить с цитированием
Старый 24.11.2011, 16:23   #4
somwan
Пользователь
 
Регистрация: 05.11.2008
Сообщений: 33
По умолчанию

А для какого компилятора то?
Я работаю в BORLANDC 3.1 там есть функция kbhit(); которая возвращает не нулевое значение в случае нажатия какой либо клавиши на клавиатуре, и 0 - если ничего не нажато. А так же есть функция getche() - получающая символ с клавиатуры. Можно было бы написать так:

Код:
int s;
if(kbhit())
   s = getche();
тут потребуется два нажатия на клавишу, первое чтобы удовлетворить условие, а второе - собственно ввод символа. Если предполагается что пользователь введёт > одного символа, то этот вариант будет работать.
somwan вне форума Ответить с цитированием
Старый 24.11.2011, 16:36   #5
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от somwan Посмотреть сообщение
тут потребуется два нажатия на клавишу, первое чтобы удовлетворить условие, а второе - собственно ввод символа.
Не потребуется. kbhit() не извлекает символ из потока.
Однако, kbhit() не стандартная функцию,но стандартных функций для неблокирующего ввода нет.
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 25.11.2011, 10:34   #6
Натаниэль
 
Регистрация: 30.10.2011
Сообщений: 4
По умолчанию

kbhit() подходит, спасибо
Натаниэль вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверка на неправильный ввод a.n.o.n.i.m Общие вопросы C/C++ 5 23.10.2011 09:57
Задание с циклами: ввод и проверка чисел.(Pascal) swillrocker Помощь студентам 4 04.05.2011 20:37
excel.Проверка VBA и проверка функции Будда Помощь студентам 0 14.04.2011 21:10
Запретить ввод более одной десятичной точки в форму ввода("некорректный ввод") adller_one PHP 1 13.01.2011 23:59