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

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

Войти
Регистрация
Восстановить пароль
 
tofvis
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 6
#1

Дублирование кода стрелки ввех(-32 72) и рус р(-32), агл H(72) - C++

24.01.2013, 07:23. Просмотров 395. Ответов 2
Метки нет (Все метки)

Добрый день знатакам. У меня возникла проблема с Клавишей вверх (код -32 72) и руской буквой р (-32), англ. H (72).
Пытаюсь через условный оператор отделить нажатие стрелок от нажатия клавиш букв.
Почти все работает кроме букв р (-32) и англ. H (72). они выдают не то действия.

Вот мой код я уже зашел в тупик но как наркотик не могу отступить пока не решу.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <conio.h>
#include <locale.h>
 
using namespace std;
 
int main()
{
setlocale(LC_ALL," ");  
    int ch;
    char key;
    while(1)
    {
    key = _getch();
    ch = static_cast<int>(key);
    cout << ch << endl;
    
    if (!key  || (  key == 72 && key != -32
                ||  key == 80 && key != -32
                ||  key == 75 && key != -32
                ||  key == 77 && key != -32)
                
                )
    {
        cout << "    Keys" << endl ;
    }
    else if (      key != -32 && key != 72  
                || key != -32 && key != 75 
                || key != -32 && key != 77 
                || key != -32 && key != 80
                || key != -32 && key !=72 
                || key != -32 && key ==72 )
    {
        cout << "    letters" << endl ;
    }
    
    
    
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2013, 07:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дублирование кода стрелки ввех(-32 72) и рус р(-32), агл H(72) (C++):

Дублирование кода - Java SE
Здравствуйте! Столкнулся с проблемой при &quot;рефакторинге?&quot; кода, а именно с дубликацией временной переменной и одного и того же цикла...

Дублирование html кода - JavaScript
Можно как то подручными средствами дублировать код. У меня есть таблица опредленно стиля и т.д. очень часто повторяющаяся на сайте можно...

Убрать дублирование кода - C++
Как бы поэлегантнее все перегрузки оператора вывода обьяденить в одном шаблоне. Возможно как то через шаблонные шаблонные...

Дублирование кода и константные методы - C++
Есть метод method возвращающий ссылку на внутреннее значение объекта. Существует в двух вариантах - константный и обычный. Константная...

Убрать дублирование кода через наследование - C++
Добрый день. Есть два почти одинаковых класса со статическим членами: class First { public: enum MyEnum { ...

Дублирование кода. Как это решается? - Delphi
Как я уже узнал препроцессора в delphi нет и такие финты как в си навернуть не получится. Есть следующий участок кода: // много...

2
Байт
Эксперт C
16355 / 10631 / 1592
Регистрация: 24.12.2010
Сообщений: 20,279
24.01.2013, 09:38 #2
tofvis, скобки расставь
0
tofvis
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 6
24.01.2013, 13:24  [ТС] #3
расвил ничего не дает серавно если нажимать "р" или "H" -32, 72 пишет key вместо letters. Я немогу понять одно ведь когда нажимаеш стрелку выдается два значения -32 и код клавиши. Елсли например я сузить экспиримент толко для стрелки ввер и букв "р" , "H" -32, 72 .
Первое условие для стрелки верх
C++
1
if (key == 72 && key != -32)
выдает оба варианта значения.
Второе условие
C++
1
else if ((key ==72)|| (key == -32))
для бкв "р" , "H" . ели нажимаеш "р" выдает правильное значение(второе) если "Н" то первое значение.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (!key  || ( ( key == 72 && key != -32)
                || ( key == 80 && key != -32)
                || ( key == 75 && key != -32)
                || ( key == 77 && key != -32))
                
                )
    {
        cout << "    Keys" << endl ;
    }
    else if (      (key != -32 && key != 72)  
                || (key != -32 && key != 75) 
                || (key != -32 && key != 77) 
                || (key != -32 && key != 80)
                || (key ==72) 
                || (key == -32)
                 )
    {
        cout << "    letters" << endl ;
    }
или
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (!key  || ( ( key == 72 && key != -32)
                || ( key == 80 && key != -32)
                || ( key == 75 && key != -32)
                || ( key == 77 && key != -32))
                
                )
    {
        cout << "    Keys" << endl ;
    }
    else if (      (key != -32 && key != 72)  
                || (key != -32 && key != 75) 
                || (key != -32 && key != 77) 
                || (key != -32 && key != 80)
                || (key != -32 && key !=72) 
                || (key != -32 && key ==72)
                 )
    {
        cout << "    letters" << endl ;
    }
или
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (!key  || ( ( (key == 72) && (key != -32))
                || ( (key == 80) && (key != -32))
                || ( (key == 75) && (key != -32))
                || ( (key == 77) && (key != -32)))
                
                )
    {
        cout << "    Keys" << endl ;
    }
    else if (      ((key != -32) && (key != 72))  
                || ((key != -32) && (key != 75)) 
                || ((key != -32) && (key != 77)) 
                || ((key != -32) && (key != 80))
                || ((key != -32) && (key !=72)) 
                || ((key != -32) && (key ==72))
                ||
                 )
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2013, 13:24
Привет! Вот еще темы с ответами:

Дублирование html кода методами jQuery - jQuery
Здраствуйте. Слабо представляю как сделать такую вещь c помощью jQuery, покажите, пожалуйста, как надо) Имеется блок новостей такого...

Адресация процедур на asm (дублирование кода, VirtualProtect) - C++ Builder
Здравствуйте. Не вдаваясь в мотивацию, приведу упрощенный пример для демонстрации проблемы. Помогите, пожалуйста, в ее устранении или...

Дублирование кода в запросах Access или Как делать отчеты - MS Access
Есть таблица Заявка с полями Кафедра, Дата поступления, ... . На форме кнопка, которая формирует отчет за выбранный год. Отчет состоит из...

Как уменьшить дублирование кода CSS и повысить его производительность - HTML, CSS
Поделитесь, пожалуйста, советами в этой области, т.к. материал статей в интернете на эту тему не очень богат. Что делает код CSS3 более...


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

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

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