Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > С/С++
Перезагрузить страницу Аналог KeyPressed и ReadKey
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
integral integral вне форума
Member
 
Сообщений: 54
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 14.03.2006
По умолчанию Аналог KeyPressed и ReadKey - 11.05.2006, 01:18

В Паскале есть такие функции как KeyPressed и ReadKey, какой их аналог в С++?
Ответить с цитированием
  (#2 (permalink)) Старый
integral integral вне форума
Member
 
Сообщений: 54
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 14.03.2006
По умолчанию Аналог KeyPressed и ReadKey - 11.05.2006, 01:18

В Паскале есть такие функции как KeyPressed и ReadKey, какой их аналог в С++?
Ответить с цитированием
  (#3 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию Re: Аналог KeyPressed и ReadKey - 11.05.2006, 04:41

Цитата:
Originally posted by integral
[b]В Паскале есть
В смысле в ДОСовском Паскале? Винда, да и любая многозаданая система, работает по несколько другому принципу - нажатия клавиш преобразуются в сообщения.
Если же программа консольная, то есть getch(), getchar()
Ответить с цитированием
  (#4 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию Re: Аналог KeyPressed и ReadKey - 11.05.2006, 04:41

Цитата:
Originally posted by integral
[b]В Паскале есть
В смысле в ДОСовском Паскале? Винда, да и любая многозаданая система, работает по несколько другому принципу - нажатия клавиш преобразуются в сообщения.
Если же программа консольная, то есть getch(), getchar()
Ответить с цитированием
  (#5 (permalink)) Старый
integral integral вне форума
Member
 
Сообщений: 54
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 14.03.2006
По умолчанию 11.05.2006, 06:55

Но getch() ЖДЕТ нажатия клавиши а KeyPressed не ждет!

Например:

Код:
ch:=' ';
for i:=1 to 100 do
  begin
   Writeln (i);
   if KeyPressed then ch:=ReadKey;
   if (ch<>' ') then Halt;
  end;
если не трогать клавиатуру то на екран будут виведены чысла от 1 до 100.
КАК СДЕЛАТЬ, например, ТАКУЮ ПРОГУ НА С++, или я тупой?
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
integral integral вне форума
Member
 
Сообщений: 54
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 14.03.2006
По умолчанию 11.05.2006, 06:55

Но getch() ЖДЕТ нажатия клавиши а KeyPressed не ждет!

Например:

Код:
ch:=' ';
for i:=1 to 100 do
  begin
   Writeln (i);
   if KeyPressed then ch:=ReadKey;
   if (ch<>' ') then Halt;
  end;
если не трогать клавиатуру то на екран будут виведены чысла от 1 до 100.
КАК СДЕЛАТЬ, например, ТАКУЮ ПРОГУ НА С++, или я тупой?
Ответить с цитированием
  (#7 (permalink)) Старый
integral integral вне форума
Member
 
Сообщений: 54
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 14.03.2006
По умолчанию 11.05.2006, 06:57

getch(); НЕ АНАЛОГ ReadKey;
getch(); все время ждет нажатия на любую клавишу!

ReadKey-при обращении к этой функции анализируется буфер клавиатуры: если в нем есть хотя бы один не прочитанный символ, код этого символа берется из буфера и возвращается в качестве значения функции без ожидания нажатия на клавишу, в противном случае функция будет ожидать нажатия на любую клавишу.

Обращение к функции KeyPressed не задерживает исполнения программы: функция немедленно анализирует буфер и возвращает то или иное значение, не дожидаясь нажатия клавиши.

Какой же аналог етим двом функциям? Может ктото зможет написать такие функции на С++?
Или как из буфера можно достать нажатую клавишу без задержки програмы?
В какой переменной храниться максимальный обьэм буфера?
В какой переменной храниться поточный обьэм буфера?


Код:
if KeyPressed then...
можна на С++ записать еще так:
Код:
if (поточный обьэм буфера < максимальный обьэм буфера) ...
Ответить с цитированием
  (#8 (permalink)) Старый
integral integral вне форума
Member
 
Сообщений: 54
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 14.03.2006
По умолчанию 11.05.2006, 06:57

getch(); НЕ АНАЛОГ ReadKey;
getch(); все время ждет нажатия на любую клавишу!

ReadKey-при обращении к этой функции анализируется буфер клавиатуры: если в нем есть хотя бы один не прочитанный символ, код этого символа берется из буфера и возвращается в качестве значения функции без ожидания нажатия на клавишу, в противном случае функция будет ожидать нажатия на любую клавишу.

Обращение к функции KeyPressed не задерживает исполнения программы: функция немедленно анализирует буфер и возвращает то или иное значение, не дожидаясь нажатия клавиши.

Какой же аналог етим двом функциям? Может ктото зможет написать такие функции на С++?
Или как из буфера можно достать нажатую клавишу без задержки програмы?
В какой переменной храниться максимальный обьэм буфера?
В какой переменной храниться поточный обьэм буфера?


Код:
if KeyPressed then...
можна на С++ записать еще так:
Код:
if (поточный обьэм буфера < максимальный обьэм буфера) ...
Ответить с цитированием
  (#9 (permalink)) Старый
Yaroslav Yaroslav вне форума
Member
 
Сообщений: 166
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.10.2004
По умолчанию 11.05.2006, 09:19

Вобшето по стандарту в С/С++ нет ни каких функций, функции есть только в библиотеках прилагаемых к компиляторам С/С++.
При этом в разных библиотеках иногда встречаются функции сразными названиями но с одним функционалом
Так в библиотеке Borland 3 есте функция на подобе KeyPressed называется
kbhit возврашает 1 если была нажата клавиша и 0 если нет.
обычно применябт такой код:
Код:
 
 if(kbhit()){
   c = getch();
 }
смотри прилагаемые к компилятору библиотеки и свободно распространяемые библиотеки.
Ответить с цитированием
Ads
  (#10 (permalink)) Старый
Yaroslav Yaroslav вне форума
Member
 
Сообщений: 166
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.10.2004
По умолчанию 11.05.2006, 09:19

Вобшето по стандарту в С/С++ нет ни каких функций, функции есть только в библиотеках прилагаемых к компиляторам С/С++.
При этом в разных библиотеках иногда встречаются функции сразными названиями но с одним функционалом
Так в библиотеке Borland 3 есте функция на подобе KeyPressed называется
kbhit возврашает 1 если была нажата клавиша и 0 если нет.
обычно применябт такой код:
Код:
 
 if(kbhit()){
   c = getch();
 }
смотри прилагаемые к компилятору библиотеки и свободно распространяемые библиотеки.
Ответить с цитированием
Ответ

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
аналог в цифру фаза Видео 1 20.01.2012 23:37
Аналог Switch из Си snarkbird Prolog 13 04.11.2010 19:39
Аналог BookMarks в C# SergeyV .NET 0 28.10.2009 10:39
ReadKey&Sleep вывод информации с задержкой Geniy .NET 8 26.05.2009 19:17
аналог пластилина LEKSTER Моддинг 23 22.07.2008 03:10
LIMIT или его аналог в MS Access Casper Другие СУБД 2 14.09.2006 03:46
Аналог MakeObjectInstance в VC++ FlyCube Visual C++ 2 13.04.2006 19:36
Win32 аналог SystemTimeToTzSpecificLocalTime cubereality C++ Builder 0 28.01.2006 15:53
предикаты keypressed, inkey(_), и readchar(_) Altur Prolog 9 23.11.2005 23:02
Keypressed and Readkey в консольном приложении из Delphi SergeyV Delphi 1 03.10.2005 12:13
аналог explode из php Monah IRH С/С++ 27 10.08.2005 08:26
Аналог explode из PHP woland С/С++ 14 25.12.2003 17:51



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