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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Grey5
2 / 2 / 0
Регистрация: 11.03.2010
Сообщений: 178
#1

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

17.09.2012, 18:39. Просмотров 964. Ответов 2
Метки нет (Все метки)

Я недавно начал учить С++ и я совершенно не понимаю как эта функция работает со стрелками.
Например код вида
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++):

Как работает функция getch() и какая библиотека нужна? - C++
Ребят подскажите пожалуйста в C++ как работает функция getch() и какая библиотека нужна ?

Не работает getch() - C++
Здравствуйте, решил написать первую серьезную программу ,в данном случае змейку, не получается ввести нажатие клавиши с клавиатуры.После...

Не работает getch() - C++
не работает задержка по getchar() #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;time.h&gt; #include &lt;cstdio&gt; #include...

не работает ни _getch(), ни getch() - C++
собственно проблема: из консоли невозможно считать клавиши: Esc, Insert, Delete ....... и самое главное не читаются стрелки... считывает...

Ожидание клавиши Enter - getch не работает - C++
Друзья привет! Спасибо всем, кто откликнется! Мелкий вопрос, но честно, уже голова кругом идет! Второй день бьюсь над совершенно...

Объясните как работает this -> и -> - C++
Как написано в книжке this - это указатель на экземпляр класса. Что происходит в данных выражениях: 1. i = this -&gt; a -&gt; b -&gt; c; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Rashgild
4 / 4 / 1
Регистрация: 21.04.2011
Сообщений: 23
17.09.2012, 19:34 #2
можешь посмотреть тут - второй пост, как избежать двойного гетча, а ответить "почему так происходит?" я затрудняюсь)
-=ЮрА=-
Заблокирован
Автор FAQ
18.09.2012, 10:55 #3
Grey5, когда ты нажимаешь стрелку то генерируешь 2-байтный символ, т.е getch воспринимает нажатие стрелки как бы за два нажатия кнопки, впринципе работать со стрелками с 2-мя гетчами можно, но тогда парсить 1-ные символы будет крайне сложно. Я предлагаю по настоящиму "ненубский вариант" парсинга стрелок Стрелки клавиатуры в консоли
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2012, 10:55
Привет! Вот еще темы с ответами:

Объясните как работает программа - C++
Цель задачи была: Возведение X в 59 степень за самое малое количество шагов. 1. Ввод (X); 2. X2 = X*X; 3. X4 = X2*X2; ...

Объясните как работает код - C++
можете подробно объяснить как работают программы. 1 #include&lt;iostream&gt; #include&lt;cmath&gt; using namespace std; int main() ...

Объясните как работает программа - C++
Задание звучит так: &quot;Разработать функцию, в которую передаются в качестве аргументов массив типа float и его размер. Функция должна...

qsort объясните как работает - C++
Объясните в подробностях как работает данная функция сортировки и как её использовать. К примеру если надо просортировать данный масив: ...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru