Форум программистов, компьютерный форум CyberForum.ru

Объясните как работает _getch() со стрелками - C++

Восстановить пароль Регистрация
 
Grey5
2 / 2 / 0
Регистрация: 11.03.2010
Сообщений: 178
17.09.2012, 18:39     Объясните как работает _getch() со стрелками #1
Я недавно начал учить С++ и я совершенно не понимаю как эта функция работает со стрелками.
Например код вида
C++
1
2
3
4
    char ch;
    ch=_getch();
    cout<<ch;
    _getch();
Сразу же закроется при первом нажатии стрелки, но с другими кнопками клавиатуры всё нормально.
Ещё, эта функция при таком коде
C++
1
2
3
4
5
6
7
    char ch;
    int num;
    ch=_getch();
    num=ch;
    cout<<num;
    _getch();
    _getch();
Выдаёт без этого странную цифру -32, так ещё и независимо от нажатой стрелки.
Но если написать дважды "ch=_getch();" то всё становится нормально. Пример:
C++
1
2
3
4
5
6
7
    char ch;
    int num;
    ch=_getch();
    ch=_getch();
    num=ch;
    cout<<num;
    _getch();
Скажите что не так с этой функцией, или она просто расист?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2012, 18:39     Объясните как работает _getch() со стрелками
Посмотрите здесь:

Объясните, как работает программа C++
C++ объясните как это работает
C++ Объясните как работает this -> и ->
qsort объясните как работает C++
C++ Объясните как работает код
C++ Объясните, как работает программа
Объясните как работает программа C++
Как правильно работать с функцией _getch() ? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rashgild
 Аватар для Rashgild
4 / 4 / 1
Регистрация: 21.04.2011
Сообщений: 23
17.09.2012, 19:34     Объясните как работает _getch() со стрелками #2
можешь посмотреть тут - второй пост, как избежать двойного гетча, а ответить "почему так происходит?" я затрудняюсь)
-=ЮрА=-
Заблокирован
Автор FAQ
18.09.2012, 10:55     Объясните как работает _getch() со стрелками #3
Grey5, когда ты нажимаешь стрелку то генерируешь 2-байтный символ, т.е getch воспринимает нажатие стрелки как бы за два нажатия кнопки, впринципе работать со стрелками с 2-мя гетчами можно, но тогда парсить 1-ные символы будет крайне сложно. Я предлагаю по настоящиму "ненубский вариант" парсинга стрелок Стрелки клавиатуры в консоли
Yandex
Объявления
18.09.2012, 10:55     Объясните как работает _getch() со стрелками
Ответ Создать тему
Опции темы

Текущее время: 03:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru