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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 73, средняя оценка - 4.71
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
#1

Операция при нажатии клавиши - C++

25.07.2009, 19:58. Просмотров 9625. Ответов 11
Метки нет (Все метки)

подскажите как при помощьи клавиши сделать какую то задачу...например при Y сделать что то а при N например закрыть окно...это надо вроде через чар сделать но как, не знаю многопопробовал, не получается...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2009, 19:58     Операция при нажатии клавиши
Посмотрите здесь:

C++ Последовательный сдвиг текста при нажатии клавиши
Вывод цвета при нажатии определенной клавиши C++
Вывод информации при нажатии клавиши C++
Перехват кода клавиши при нажатии C++
C++ При нажатии соответствующей клавиши запустить .exe
C++ Циклическая программа (при нажатии клавиши повторяет операцию, изменяя данные)
C++ Выбор функции при нажатии определённой клавиши
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monte-Cristo
2786 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
25.07.2009, 20:03     Операция при нажатии клавиши #2
C++
1
2
3
4
5
6
7
8
9
char c;
c = cin.get();
switch(c)
{
case 'Y': FirstAction(); break;
case 'N': SecondAction(); break;
/* не первый и не второй вариант */
default: ThirdAction(); break;
}
Если делать без подтверждающей клавиши enter, необхожимо подключить DOS библиотеку conio.h и вместо
C++
1
c = cin.get();
написать
C++
1
c = getch();
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
25.07.2009, 20:13  [ТС]     Операция при нажатии клавиши #3
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
default: ThirdAction(); break;
аэ то для чего??

Добавлено через 2 минуты 36 секунд
3 ошибки:
Warning 1 warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details. d:\Projects\helps\helps\helps.cpp 11 helps


Error 2 error C3861: 'FirstAction': identifier not found d:\Projects\helps\helps\helps.cpp 14 helps


Error 3 error C3861: 'SecondAction': identifier not found d:\Projects\helps\helps\helps.cpp 15 helps
Monte-Cristo
2786 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
25.07.2009, 20:18     Операция при нажатии клавиши #4
Цитата Сообщение от @lex Посмотреть сообщение
3 ошиб


Цитата Сообщение от @lex Посмотреть сообщение
getch
это предупреждение, что getch - posix не совместима.. т.е. на линухе не прокатит...

Цитата Сообщение от @lex Посмотреть сообщение
'FirstAction'
это выдуманная мной функция)) типа первое действие) ты ж сам спрашивал...

Цитата Сообщение от @lex Посмотреть сообщение
'SecondAction'
аналогично


Цитата Сообщение от @lex Посмотреть сообщение
аэ то для чего??
default выполняется тогда, когда не выполнилось ни одно из условий
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
25.07.2009, 20:22     Операция при нажатии клавиши #5
Warning 1 warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details. d:\Projects\helps\helps\helps.cpp 11 helps
Английский знаешь ?
Тут написано, что рекомендуется использовать _getch() вместо getch().

FirstAction(), SecondAction(), ThirdAction() - это твои функции, которые ты сам должен написать.

Добавлено через 1 минуту 36 секунд
это предупреждение, что getch - posix не совместима.. т.е. на линухе не прокатит...
Вообще-то там написано не это.
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
25.07.2009, 20:23  [ТС]     Операция при нажатии клавиши #6
Monte-Cristo, 2 из этих понял))))))))а на счет этих actionov не совсем...
то есть так....если У значит первый акшон...если так то что такое breack?

Добавлено через 53 секунды
odip, а объязательно функции?
Monte-Cristo
2786 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
25.07.2009, 20:29     Операция при нажатии клавиши #7
Цитата Сообщение от odip Посмотреть сообщение
Вообще-то там написано не это.
да ну? я просто до конца не перводил... а применять getch() или _getch() я большей разницы не вижу.. в серьезный проектах ее не используют, а некоторые часто пишут в VS 6.0 которая не поддерживает _getch()... для совместимости лучше getch() (имхо)

Цитата Сообщение от @lex Посмотреть сообщение
Monte-Cristo, 2 из этих понял))))))))а на счет этих actionov не совсем...
то есть так....если У значит первый акшон...если так то что такое breack?
даю установку: сейчас ты открываешь книженку по С++ и чатиешь про оператор switch(). на пальцах его дейсвтие не объяснишь
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
25.07.2009, 20:33  [ТС]     Операция при нажатии клавиши #8
Monte-Cristo,сам не додумался...жаль что в книжке нету
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
25.07.2009, 20:40     Операция при нажатии клавиши #9
а применять getch() или _getch() я большей разницы не вижу
Разница в том, что getch() deprecated.
в серьезный проектах ее не используют
Скорее всего да
пишут в VS 6.0 которая не поддерживает
Visual Studio 6.0 лучше вообще не использовать, так как не соответствует стандарту C++. Хорошая совместимость со стандартом у VS2005.

Добавлено через 5 минут 41 секунду
odip, а объязательно функции?
Нет конечно - убери функцию и пиши свой код.

2@lex: Какой у тебя компилятор ?
Monte-Cristo
2786 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
25.07.2009, 20:42     Операция при нажатии клавиши #10
Цитата Сообщение от odip Посмотреть сообщение
Разница в том, что getch() deprecated.
ну и? goto тоже не рекомендуют применять..
функция strcpy() тоже не безопасна... так ты что применяешь strcpy_s()?

Цитата Сообщение от odip Посмотреть сообщение
Visual Studio 6.0 лучше вообще не использовать, так как не соответствует стандарту C++. Хорошая совместимость со стандартом у VS2005.
большинсвто студентов программируют или в VS 6.0, или в Borland C 3.1. Стандарты этих компиляторов очень устарелые, и не поддерживают _getch().
ISergey
Maniac
Эксперт С++
1347 / 880 / 52
Регистрация: 02.01.2009
Сообщений: 2,645
Записей в блоге: 1
25.07.2009, 20:51     Операция при нажатии клавиши #11
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
для совместимости лучше getch()
Для совместимости лучше вообще не использовать getch() так как стандартом не поддержуется.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2009, 22:31     Операция при нажатии клавиши
Еще ссылки по теме:

Воспроизведение звука системным динамиком при нажатии определенной клавиши C++
C++ Вызов функции при нажатии клавиши
C++ Возврат программы в исходное состояние при нажатии определенной клавиши
Как сделать так, что при нажатии клавиши ( не могу сформулировать) C++

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

Или воспользуйтесь поиском по форуму:
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
25.07.2009, 22:31  [ТС]     Операция при нажатии клавиши #12
Цитата Сообщение от odip Посмотреть сообщение
Какой у тебя компилятор ?
vs08
Yandex
Объявления
25.07.2009, 22:31     Операция при нажатии клавиши
Ответ Создать тему
Опции темы

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