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

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

Войти
Регистрация
Восстановить пароль
 
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
#1

"И" ведет себя как "ИЛИ" - C++

31.03.2012, 11:39. Просмотров 542. Ответов 14
Метки нет (Все метки)

Здраствуйте, помогите разобраться. Есть функция, кот. возвращает true, если клавиша удерживается. Если вызвать эту функцию для проверки 2 клавиш ( кнопки нумерации 1 и 2 )
C++
1
if ( KeyPressed(0x031) == true && KeyPressed(0x032) == true ) { ... }
срабатывает только первое условие


Вот код с самой функцией:
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
#include <windows.h>
#include <stdio.h>
 
bool KeyPressed( int ButtonID );
 
//*********************************************************************
// Name: KeyPressed()
// Desc: ÂîçâðГ*Г№Г*ГҐГІ TRUE åñëè ГЄГ«Г*ГўГЁГёГ* ButtonID óäåðæèâГ*ГҐГІГ±Гї
//*********************************************************************
bool KeyPressed( int ButtonID )
{
    if ( GetKeyState( ButtonID ) < 0 )
        return true;        
}
 
//*********************************************************************
// Name: main()
// Desc: 
//*********************************************************************
int main()
{
    PBYTE   keys[256];
    int     i = 0;
    
    while( i != 100 ) 
    {
        if ( KeyPressed(0x031) == true && KeyPressed(0x032) == true ) 
        {
            printf( "true\n\n" );           
            i += 1;
                Sleep( 250 );
        }
    }
 
    system( "pause" );
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2012, 11:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос "И" ведет себя как "ИЛИ" (C++):

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Вставить пробел после каждого символа "." "," "!" или "?", если за этими символами не следует пробел - C++
Вставить пробел после каждого символа &quot;.&quot; &quot;,&quot; &quot;!&quot; или &quot;?&quot;, если за этими символами не следует пробел (т. е. следует любой символ, кроме...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть малой буквой, цифрой или одним из знаков "+", "-", "*". - C++
Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть малой буквой, цифрой или одним из знаков &quot;+&quot;, &quot;-&quot;, &quot;*&quot;. Групой...

Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: "Рабочий день","Суббота" или "Воскресенье" - C++
Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: &quot;Рабочий день&quot;,&quot;Суббота&quot; или...

Определить, какая из точек "В" или "С" расположены ближе к точке "А". - C++
На оси Ох расположены 3 точки А, В и С. Определить, какая из точек &quot;В&quot; или &quot;С&quot; расположены ближе к точке &quot;А&quot;. Предусмотреть вариант...

14
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
31.03.2012, 11:45 #2
C++
1
2
3
4
5
6
bool KeyPressed( int ButtonID )
{
    if ( GetKeyState( ButtonID ) < 0 )
        return true;
    else return false;       
}
1
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
31.03.2012, 11:48 #3
лови
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
 
#include <windows.h>
#include <stdio.h>
#include <conio.h>
 
bool KeyPressed( int ButtonID );
 
//*********************************************************************
// Name: KeyPressed()
// Desc: Возвращает TRUE если клавиша ButtonID удерживается
//*********************************************************************
bool KeyPressed( int ButtonID )
{
if ( GetKeyState( ButtonID ) < 0 )
return true; 
}
 
//*********************************************************************
// Name: main()
// Desc: 
//*********************************************************************
int main()
{
PBYTE keys[256]; /// зачем ето?
int i = 0;
char k;
while( i != 100 ) 
{ k=_getch();
if ( KeyPressed(k) == true) 
{
printf( "true\n\n" ); 
i += 1;
Sleep( 250 );
}
}
 
system( "pause" );
return 0;
}
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
31.03.2012, 11:51  [ТС] #4
Цитата Сообщение от Nekto Посмотреть сообщение
C++
1
2
3
4
5
6
    if ( GetKeyState( ButtonID ) < 0 ) { 
        return true; 
    }
    else { 
        return false; 
    }
так вообще ни одно условие не срабатывает
0
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
31.03.2012, 11:51 #5
и можно делать не
C++
1
2
 
while( i != 100 )
а


C++
1
 for(int i=0;i<100;i++)
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
31.03.2012, 11:52 #6
Цитата Сообщение от programina Посмотреть сообщение
так вообще ни одно условие не срабатывает
У меня отлично работает. Когда нажимаю 1, ничего не происходит. Нажимаю 1+2, выдаёт true.
1
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
31.03.2012, 11:56  [ТС] #7
Taras_Z, вы не поняли меня, мне надо что бы действие в условии IF происходило, если оба условия истинны, т.е. обе клавишы удерживаются нажатыми
0
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
31.03.2012, 11:57 #8
извини не увидел что те надо токо на 1 и 2
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
31.03.2012, 11:59  [ТС] #9
Nekto, простите всё и в самом деле работает, я просто нажимала по одной клавише
0
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
31.03.2012, 12:02 #10
тогда просто написать
C++
1
2
3
4
5
6
7
 
bool KeyPressed( int ButtonID )
{
    if ( GetKeyState( ButtonID ) < 0 )
        return true;
    else return false;       
}
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
31.03.2012, 12:10  [ТС] #11
Цитата Сообщение от Taras_Z Посмотреть сообщение
тогда просто написать
C++
1
2
3
4
5
6
7
 
bool KeyPressed( int ButtonID )
{
    if ( GetKeyState( ButtonID ) < 0 )
        return true;
    else return false;       
}
Да, Nekto уже написал выше, я вообще else убрала, так тоже работает.
0
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
31.03.2012, 12:12 #12
не увидел
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
31.03.2012, 12:14  [ТС] #13
Цитата Сообщение от Taras_Z Посмотреть сообщение
не увидел
Бывает
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
31.03.2012, 13:57 #14
Цитата Сообщение от Taras_Z Посмотреть сообщение
C++
1
2
3
4
5
6
bool KeyPressed( int ButtonID )
{
* * if ( GetKeyState( ButtonID ) < 0 )
* * * * return true;
* * else return false; * * *
}
все проще)
C++
1
2
3
4
bool KeyPressed(int ButtonID)
{
    return (GetKeyState(ButtonID) < 0 );
}
2
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
31.03.2012, 14:30  [ТС] #15
Цитата Сообщение от Jupiter Посмотреть сообщение
C++
1
2
3
4
bool KeyPressed(int ButtonID)
{
    return (GetKeyState(ButtonID) < 0 );
}
Работает и записывается кратко без else-условия
0
31.03.2012, 14:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2012, 14:30
Привет! Вот еще темы с ответами:

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...


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

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

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