Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

Добавлено через 22 секунды
для консоли
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2011, 17:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Определить код нажатой клавиши (C++):

прога, которая по нажатой клавише выводит ascii - код символа это клавиши или scan - код самой клавиши. - C++
написать программу, которая по нажатой клавише выводит ascii - код символа этой клавиши или scan - код самой клавиши. осуществите вывод в...

функция выдает код нажатой клавиши - C++
привет всем) подскажите пожалуйста есть ли такой оператор, который выдаст код нажатой клавиши,без нажатия клавиши ввода,т.е. нажали...

Считывание нажатой клавиши - C++
Задача состоит в том, что бы при нажатии какой-либо клавиши производилось действие, в паскале я знаю как это сделать, при помощи процедуры...

Возврат значения нажатой клавиши - C++
Подскажите ассемблеровскую вставку для С++. Чтобы возвращалось значение нажатой клавиши

Определение нажатой клавиши,консольное приложение. - C++
Здравствуйте,есть программка которая при нажатии на одну из стрелок клавиатуры должна написать какая стрелка нажата: #include...

Как получить имя нажатой клавиши - C++
Может кто занет, есть ли какая-нибудь функция которая возвращает по коду нажатой клавиши ее название? Например, была нажат ESC - мы...

11
bobrovskii
59 / 59 / 3
Регистрация: 22.01.2011
Сообщений: 187
28.02.2011, 17:39 #2
C
1
#include <conio.h>
и проканает.
0
PodOnoK
17 / 14 / 0
Регистрация: 10.01.2010
Сообщений: 252
28.02.2011, 17:43  [ТС] #3
в том и дело что он подключен, а ошибку кидает... типо он не знает что за оператор
0
MILAN
887 / 781 / 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;
      }
0
bigredcat
368 / 315 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
28.02.2011, 17:46 #5
А так _getch(). Вобще то у меня 2008 и работает getch().
Есть еще _getche()
1
sbhx
26 / 20 / 1
Регистрация: 02.02.2011
Сообщений: 96
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 минуту
никто не знается таких вещей? я думал что это просто, но я просто не могу додуматься
0
bigredcat
368 / 315 / 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;
}
0
sbhx
26 / 20 / 1
Регистрация: 02.02.2011
Сообщений: 96
28.02.2011, 21:25 #8
а тогда как сделать чтобы можно было использовать клавиши ф1-ф12?
да и конечно как сделать чтобы реагировало в консольной программе на щелчки мыши, это меня тоже очень интересует

Добавлено через 29 минут
что никто не знается уже то что точно можно сделать с кнопками ф1-ф12?
не знаю как кнопки мыши в консоли но с ф1-ф12 точно можно.
0
PodOnoK
17 / 14 / 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); вообще нигде не признает...
0
GAME
23 / 23 / 3
Регистрация: 31.10.2009
Сообщений: 199
28.02.2011, 23:43 #10
Цитата Сообщение от PodOnoK Посмотреть сообщение
и gotoxy(1,1); вообще нигде не признает...

а вот gotoxy нету по моему. её самому писать надо.
0
MILAN
887 / 781 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
28.02.2011, 23:45 #11
Цитата Сообщение от GAME Посмотреть сообщение
а вот gotoxy нету по моему.
Мне тоже почему то кажется что ето борландовская штука, хотя могу ошыбатся.
0
PodOnoK
17 / 14 / 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 минуты
А как сделать так, чтоб содержимое консоли сдвинулось на одну позицию вниз?
0
01.03.2011, 00:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2011, 00:44
Привет! Вот еще темы с ответами:

Прерывание бесконечного цикла с возвратом значения нажатой клавиши в main() - C++
Вкратце, в функции main() есть некий объект класса - scene, также есть бесконечно работающий цикл while(1), в котором вызывается...

Код клавиши - C++
Здравствуйте! Есть такой вопрос - какой ASCII код у клавиши вызова контекстного меню? Сейчас пишу небольшой файловый менеджер, и...

код клавиши - C++
всем привет ) может кто нибудь объяснить как считать клавиши такие как F5 cntrl shift и так далее ) если можно приведите кусочек...

Подскажите аски код клавиши ENTER - C++
Хотел написать программу, которая вводит строки из файла и выводит их потом построчно, но для вывода каждой новой строки нужно нажать...


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

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

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