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

Проверка на нажатие стрелок на клавиатуре - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подстановка вычисляемого типа в шаблонах http://www.cyberforum.ru/cpp-beginners/thread1179428.html
Товарищи. Помогите разобраться с шаблонами. С шаблонами начал разбираться вчера, и потому излагаю задачу полностью, дабы не быть непонятым. Задача - реализовать операцию матричного умножения....
C++ Непонятная остановка программы Не могу понять в чем причина торможения программы. Запускаю ее, она виснет и не завершается. Все, что удалось выяснить - проблема с деструктором MATRIX. Просто если я его удаляю, то программа... http://www.cyberforum.ru/cpp-beginners/thread1179408.html
Задача о шестеренках C++
Всем доброго времени суток. Есть задача: дано n шестеренок, вводится с клавиатуры номер шестеренки, с которой начинаем ход. Первая шестеренка поворачивается по часовой стрелке, смыкающаяся с...
Шаблон класса, линейный однонаправленный список C++
Нужна помощь в создание методов для класса. Для инициализации следующего элемента, удаления елемента и поиска. Помощь ссылкой на то как можно реализовать приветствуется. #include "stdafx.h"...
C++ Структурные задачи, нужна помщь http://www.cyberforum.ru/cpp-beginners/thread1179393.html
Ко всем задачам нужно применить следующую структуру «Пациент»: фамилия, имя, год рождения, номер телефона, домашний адрес (почтовый индекс, страна, область, район, город, улица, дом, квартира), номер...
C++ Поясните синтаксис - ( std::string& x: bar ) Наткнулся здесь на использование двоеточия для какого-то рода инициализации ссылки, но не понимаю ни синтаксиса, ни механизма работы: std::vector<std::string> foo = {"air","water","fire","earth"};... подробнее

Показать сообщение отдельно
Krock21rus
74 / 74 / 19
Регистрация: 18.11.2013
Сообщений: 373
Завершенные тесты: 2
19.05.2014, 00:17
Цитата Сообщение от mh-coder Посмотреть сообщение
а как тут можно сделать несколько условий?
while((a = getch())!=27) чтобы небыло равно 27 и еще паре кнопок? если ж я напишу a = getch())!=27 && a = getch())!=28 и тд то буду несколько раз нажимать? или нет?
Добавлено через 4 часа 35 минут
никто не в курсе?
Добавлено через 1 час 12 минут
while((a = getch())!=27) так не работает, он записывает в массив букву ,,а,, и на сравнние с числом не реагирует
итак, по порядку

1: сделать while(kbhit()), а в теле переместить в переменную char код от getch(), и через switch его сравнивать, если он равен 27, 28, то break;, альтернатива: while(a=getch()!=27 && a!=28) или for(char a=getch();;a=getch())

2: я в курсе, я ответил

3: работает, нужно вначале проверить, сравнение идёт с числом по коду, у каждого символа есть код от -127 до 127 или от 0 до 255, у esc это 27, и, т.к. 27 не заключены в '' или "", то это считается кодом, чтобы узнать код символа, надо вывести переменную как число, то есть int(cout << (int)a или printf("%d",a))

для закрепления, скомпилируй и запусти, все коды всех символов:

C++
1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <conio.h>
 
int main()
{
for(int i=-128;i<128;i++,delay(100))
printf("simvol %c imeet code %d",i,i); // %c это выведет перменную как символ, а %d как число(код символа)
getch();
}
Добавлено через 6 минут
вот более правильный код, delay в windows не во всех работает:

C++
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <conio.h>
#include <windows.h>
 
int main()
{
for(int i=-128;i<128;i++,Sleep(100))
printf("simvol %c imeet code %d\n",i,i); // %c ГЅГІГ® âûâåäåò ïåðìåГ*Г*ГіГѕ ГЄГ*ГЄ ñèìâîë, Г* %d ГЄГ*ГЄ ÷èñëî(êîä ñèìâîëГ*)
getch();
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru