Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: GeorgeIV   (16.01.2009 в 09:48)
И не распознаете при таком коде. Пытаетесь использовать специальные клавиши, а считываете символьные.
Вот что говорит MSDN по этому поводу:
When reading a function key or an arrow key, each function must be called twice; the first call
 returns 0 or 0xE0, and the second call returns the actual key code.

These functions lock the calling thread and are therefore thread-safe. For non-locking versions

Т.е. отсюда следует, что надо сначала проверить на 0 или 0xE0, и если так, то вызвать функцию еще раз, тогда и получите код нажатой спецклавиши.

Вот так у меня сработало:


.....
//      scanf("%d",&n);
//    clear_screen();
    n=getch();
if ((n==0) || (n==0xE0))
n = getch();
else
continue;
      switch (n)
      {
.......


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: