Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2009, 23:11   #1
iukash
учу английский...
Форумчанин
 
Аватар для iukash
 
Регистрация: 04.04.2009
Сообщений: 480
По умолчанию Программно-аппаратное взаимодействие

Уважаемые форточане обьясните пожалуйста как мне сделать так чтобы у меня выполнялся блок программы один, при нажатии на какую либо клавишу на клавиатуре например 1 выполнялся другой, при нажатии еще раз на 1 опять выполнялся предведущий. В общем у меня программно реализована система индикации и мне надо чтобы по нажатии клавиш менялась картинка индикации. Картинки у меня прописаны в разных файлах, желательно объединить в один с возможностью переключения между ними при помощи кнопки клавиатуры!
"Мы можем что-то изменить и своими силами..."
"Начнешь с себя, примером ближнему поможешь..."
iukash вне форума Ответить с цитированием
Старый 01.07.2009, 23:34   #2
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

ну заведи переменную. нажал 1 раз - проинкременил, проверил чему равна - вызвал нужную функцию. и т.д. вобщем, конечный автомат по состояниям. если я конечно правильно тя понял.
vvviperrr вне форума Ответить с цитированием
Старый 02.07.2009, 10:10   #3
iukash
учу английский...
Форумчанин
 
Аватар для iukash
 
Регистрация: 04.04.2009
Сообщений: 480
По умолчанию

Цитата:
Сообщение от vvviperrr Посмотреть сообщение
ну заведи переменную. нажал 1 раз - проинкременил, проверил чему равна - вызвал нужную функцию. и т.д. вобщем, конечный автомат по состояниям. если я конечно правильно тя понял.
Ну заведу я переменную, а как заставить ее инкременировать при нажатии на клавишу клавиатуры? А без взаимодействия с клавиатурой ничего не получается, я уже все перепробовал! В этом вся проблема!
"Мы можем что-то изменить и своими силами..."
"Начнешь с себя, примером ближнему поможешь..."
iukash вне форума Ответить с цитированием
Старый 02.07.2009, 10:43   #4
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Я так понял тебе нужно вот это:
Код:
#include <iostream.h>
#include <conio.h>

int main()
{
        int key,i=0;
        do{
        key=getch();
        if (key==' ')
                cout << i++ << "\n";
        }while ('e'!=key);
        return 0;
}

Последний раз редактировалось profi; 02.07.2009 в 10:47.
profi вне форума Ответить с цитированием
Старый 02.07.2009, 17:18   #5
iukash
учу английский...
Форумчанин
 
Аватар для iukash
 
Регистрация: 04.04.2009
Сообщений: 480
По умолчанию

Нет, вы меня не правильно поняли. Очень грубо говоря у меня есть следующее: while(цикл бесконечный) { func1;//1 функция func2;//2 функция } И мне надо чтобы выполнялся блок операторов грубо говоря 1 функция, а при нажатии на какую либо клавишу 1 функция переставала выполняться а выполнялась 2 функцию. И соответственно при повторном нажатии 2 функцию переставала выполняться и выполнялась 1. Какое нибудь условие типа if-else.
"Мы можем что-то изменить и своими силами..."
"Начнешь с себя, примером ближнему поможешь..."
iukash вне форума Ответить с цитированием
Старый 02.07.2009, 18:01   #6
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2iukash ты можешь изъясняться более ясно? я тебе сразу сказал, что тебе требуется (конечный автомат знаешь что такое?)

Код:
#include "stdio.h"
#include "conio.h"

void foo1() {
	printf("%s\n", "Im function number 1");
}

void foo2() {
	printf("%s\n", "Im function number 2");
}

int main() {
	int i = 0;
	char c = 0;

	while ( (c = getch()) != 27) {
		if (c == '1') { //нажали клавишу 1
			switch (i) {
			case 0:
				foo1();
				break;
			case 1:
				foo2();
				break;
			}
			i ^= 1;
		}
	}

	return 0;
}
запускай и жми все время клавишу 1.
и вот только попробуй мне доказать, что данный код не подходит под твое описание.

Последний раз редактировалось vvviperrr; 02.07.2009 в 18:09.
vvviperrr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
uTorrent - взаимодействие SoulReaver Win Api 1 21.06.2009 20:06
Взаимодействие с пользователем Alone_Wolf Общие вопросы Delphi 19 23.12.2008 09:34
Взаимодействие flash и C#? mrakaziabra Общие вопросы .NET 3 16.07.2008 07:16
Взаимодействие с twain jonbc Win Api 4 06.04.2007 23:35