Автор: 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)
{
.......
|