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

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

Восстановить пароль Регистрация
 
tofvis
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 6
24.01.2013, 07:23     Дублирование кода стрелки ввех(-32 72) и рус р(-32), агл H(72) #1
Добрый день знатакам. У меня возникла проблема с Клавишей вверх (код -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 ;
    }
    
    
    
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2013, 07:23     Дублирование кода стрелки ввех(-32 72) и рус р(-32), агл H(72)
Посмотрите здесь:

Дублирование символа C++
C++ где можно бесплатно и без регистрации скачать фильмы на английском с рус. субтитрами
C++ Стрелки часов
движение стрелки C++
C++ Отклик на стрелки
C++ Дублирование кода и константные методы
Убрать дублирование кода C++
Пользователь вводит строку. Определить количество букв (рус eng), количество цифр и количество остальных C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13955 / 8786 / 1222
Регистрация: 24.12.2010
Сообщений: 15,913
24.01.2013, 09:38     Дублирование кода стрелки ввех(-32 72) и рус р(-32), агл H(72) #2
tofvis, скобки расставь
tofvis
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 6
24.01.2013, 13:24  [ТС]     Дублирование кода стрелки ввех(-32 72) и рус р(-32), агл H(72) #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))
                ||
                 )
Yandex
Объявления
24.01.2013, 13:24     Дублирование кода стрелки ввех(-32 72) и рус р(-32), агл H(72)
Ответ Создать тему
Опции темы

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