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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 74, средняя оценка - 4.59
PodOnoK
16 / 13 / 0
Регистрация: 10.01.2010
Сообщений: 252
#1

Определить код нажатой клавиши - C++

28.02.2011, 17:38. Просмотров 9475. Ответов 11
Метки нет (Все метки)

Есть ли альтернатива для команды getch() в Visual C++ 2008??? А то нигде найти не могу

Добавлено через 38 секунд
А то getch() в 2008-ом не канает((

Добавлено через 22 секунды
для консоли
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2011, 17:38     Определить код нажатой клавиши
Посмотрите здесь:

Считывание нажатой клавиши C++
C++ функция выдает код нажатой клавиши
C++ прога, которая по нажатой клавише выводит ascii - код символа это клавиши или scan - код самой клавиши.
Возврат значения нажатой клавиши C++
C++ Как получить имя нажатой клавиши
Определение нажатой клавиши,консольное приложение. C++
Прерывание бесконечного цикла с возвратом значения нажатой клавиши в main() C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bobrovskii
57 / 57 / 3
Регистрация: 22.01.2011
Сообщений: 187
28.02.2011, 17:39     Определить код нажатой клавиши #2
C
1
#include <conio.h>
и проканает.
PodOnoK
16 / 13 / 0
Регистрация: 10.01.2010
Сообщений: 252
28.02.2011, 17:43  [ТС]     Определить код нажатой клавиши #3
в том и дело что он подключен, а ошибку кидает... типо он не знает что за оператор
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
28.02.2011, 17:44     Определить код нажатой клавиши #4
PodOnoK, а чем вас getch не устраивает?

C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
      #include <conio.h>
       int main()
      {
        printf("Press any key\n");
        while(!kbhit());
        printf("\n Key kod - %d\n", getch());
        getch();
        return 0;
      }
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
28.02.2011, 17:46     Определить код нажатой клавиши #5
А так _getch(). Вобще то у меня 2008 и работает getch().
Есть еще _getche()
sbhx
 Аватар для sbhx
25 / 19 / 1
Регистрация: 02.02.2011
Сообщений: 90
28.02.2011, 20:17     Определить код нажатой клавиши #6
извините может я не в тему но может кто знает как узнать нажатие не клавиши к буквой а клавиши типа Tab или start
вот мой код:
C++
1
2
3
4
5
char a = getch();
if(a == ' '){ // тут вместо пробела надо бы как-то задать чтобы если нажали, например, shift или start (что мне как рас и нужно и еще нужно бы что-то чтобы распознать стрелки.).
cout << "Здравствуйте" << endl;
getch();
}
заранее спасибо

Добавлено через 41 минуту
никто не знается таких вещей? я думал что это просто, но я просто не могу додуматься
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
28.02.2011, 20:29     Определить код нажатой клавиши #7
Посмотри, что она возвращает. Конечно инидивидуальные нажатия клавиш shift, alt, ctrl, start она не обрабатывает. Но клавиши курсора и т.д. Только в некоторых случаях (F1-F12, клавиши курсора) эта функция вызывается дважды.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<conio.h>
 
int main()
{
    using namespace std;
    int ch;
    do
    {
        ch = getch();
 
        cout << ch << endl;
 
    }
    while (ch != 'y');
 
    system("PAUSE");
    return 0;
}
sbhx
 Аватар для sbhx
25 / 19 / 1
Регистрация: 02.02.2011
Сообщений: 90
28.02.2011, 21:25     Определить код нажатой клавиши #8
а тогда как сделать чтобы можно было использовать клавиши ф1-ф12?
да и конечно как сделать чтобы реагировало в консольной программе на щелчки мыши, это меня тоже очень интересует

Добавлено через 29 минут
что никто не знается уже то что точно можно сделать с кнопками ф1-ф12?
не знаю как кнопки мыши в консоли но с ф1-ф12 точно можно.
PodOnoK
16 / 13 / 0
Регистрация: 10.01.2010
Сообщений: 252
28.02.2011, 23:39  [ТС]     Определить код нажатой клавиши #9
Цитата Сообщение от MILAN Посмотреть сообщение
PodOnoK, а чем вас getch не устраивает?

C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
      #include <conio.h>
       int main()
      {
        printf("Press any key\n");
        while(!kbhit());
        printf("\n Key kod - %d\n", getch());
        getch();
        return 0;
      }
меня он всем устраивает, но его С++ 2008 не признает... Он его то признает то нет. не пойму в чем дело((

Добавлено через 7 минут
он getch() в главном файле программы признает, а в файлах класа нет(((

Добавлено через 23 секунды
хотя и там и там conio.h подключен

Добавлено через 8 минут
и gotoxy(1,1); вообще нигде не признает...
GAME
 Аватар для GAME
23 / 23 / 3
Регистрация: 31.10.2009
Сообщений: 199
28.02.2011, 23:43     Определить код нажатой клавиши #10
Цитата Сообщение от PodOnoK Посмотреть сообщение
и gotoxy(1,1); вообще нигде не признает...

а вот gotoxy нету по моему. её самому писать надо.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
28.02.2011, 23:45     Определить код нажатой клавиши #11
Цитата Сообщение от GAME Посмотреть сообщение
а вот gotoxy нету по моему.
Мне тоже почему то кажется что ето борландовская штука, хотя могу ошыбатся.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2011, 00:44     Определить код нажатой клавиши
Еще ссылки по теме:

C++ Код клавиши
C++ Программа для определения кода клавиши выдает неверный код кнопок
C++ Подскажите аски код клавиши ENTER
C++ код клавиши
Как вывести код клавиши Print Screen? C++

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

Или воспользуйтесь поиском по форуму:
PodOnoK
16 / 13 / 0
Регистрация: 10.01.2010
Сообщений: 252
01.03.2011, 00:44  [ТС]     Определить код нажатой клавиши #12
да в борланде была)

Добавлено через 20 минут
Цитата Сообщение от GAME Посмотреть сообщение
а вот gotoxy нету по моему. её самому писать надо.
а на у кого ее нет?? А та я в инете нашел, но она какая-то кривая((

Добавлено через 32 секунды
C++
1
2
3
4
5
6
7
8
9
10
void gotoxy(int x,int y)
{
  HANDLE hConsole;
  COORD cursorLoc;
  cout.flush();
  cursorLoc.X = x;
  cursorLoc.Y = y;
  hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  SetConsoleCursorPosition(hConsole, cursorLoc);
}
Добавлено через 2 минуты
А все норм)) Прост не въхал сразу что тут окно начинается с 0

Добавлено через 32 минуты
А как сделать так, чтоб содержимое консоли сдвинулось на одну позицию вниз?
Yandex
Объявления
01.03.2011, 00:44     Определить код нажатой клавиши
Ответ Создать тему
Опции темы

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