Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 269, средняя оценка - 4.61
sniperni
1 / 1 / 2
Регистрация: 28.11.2011
Сообщений: 49
#1

Ожидание нажатия клавиши - C++

13.02.2012, 18:58. Просмотров 49082. Ответов 9
Метки нет (Все метки)

А подскажите пожалуйста, как в С++ сделать так, чтобы программа, написанная в консольных приложениях, продолжала свою работу только после нажатия клавиши Enter??? Ну например работает-работает прога,вывела что-то на экран, а потом пишет:
cout<<"Для продолжения работы программы нажмите Enter!";

http://www.cyberforum.ru/cpp-beginners/thread1142463.html


..........................
Вот как это реализовать в программе??? что должно быть написано вместо моих точек??? Подскажите ПОЖАЛУЙСТА!!! Заранее ОГРОМНОЕ СПАСИБО!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2012, 18:58
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ожидание нажатия клавиши (C++):

ожидание нажатия пробела
Добрый вечер, а может уже и ночь, помогите кому не лень, программа должна...

Ожидание нажатия определенной кнопки
Нужно чтобы при нажатии кнопки &quot;Enter&quot; происходило определенное действие....

Ожидание клавиши Enter - getch не работает
Друзья привет! Спасибо всем, кто откликнется! Мелкий вопрос, но честно, уже...

Ожидание нажатия кнопки или пауза в выполнении цикла
Есть цикл, внутри него несколько кейсов. Необходимо каким-то образом...

проверка нажатия клавиши
Всем привет, начал писать прогу и нет времени искать что либо в интернете......

9
IFree Host
Заблокирован
13.02.2012, 19:01 #2
Самое простое getchar();
После нажатия клавиши Enter программа продолжит выполнение

Можно также getch();

C
1
2
3
4
char c;
 
c = getch();
if (c == 32) ...
Но в твоем случае первый вариант проще.
2
retmas
Жарю без масла
865 / 747 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
13.02.2012, 19:03 #3
для любой нажатой
C++
1
system("pause");
C++
1
2
cout<<"Для продолжения работы программы нажмите любую клавишу...";
cin.get();
2
sniperni
1 / 1 / 2
Регистрация: 28.11.2011
Сообщений: 49
13.02.2012, 19:10  [ТС] #4
Спасибо за ответ!!! но я все же воспользовался функцией getch();
0
IFree Host
Заблокирован
13.02.2012, 19:12 #5
Тогда, вот тебе к нему еще полезные коды клавиш

13 Enter
27 escape
8 backspace
32 space

72 Стрелка вверх
80 Стрелка вниз
75 Стрелка влево
77 Стрелка вправо

115 ctrl-стрелка влево
116 ctrl-стрелка вправо

82 ins (вставка)
83 del (удалить)

73 pgup (страница вверх)
81 pgdn (страница вниз)
118 ctrl-pgdn (страница вниз)
132 ctrl - pgup (страница вверх)

71 home (начало)
79 end (конец)
119 ctrl-home (начало)
117 ctrl-end (конец)

15 shift tab
16-25 alt - q/w/e/r/t/y/u/i/o/p
30-38 alt - a/s/d/f/g/h/j/k/l
44-50 alt - z/x/c/v/b/n/m

59-68 Ключи f1-f10 (нельзя использовать клавиши с изменяемой функцией)
84-93 f11-f20 (shift-f1 - shift-f10)
94-103 f21-f30 (ctrl-f1 - ctrl-f10)

104-113 f31-f40 (alt-f1 - alt-f10)

133 f11
134 f12
135 shift-f11
136 shift-f13
137 ctrl-f11
138 ctrl-f12
139 alt-f11
140 alt-f12

114 ctrl-prtsc (копия с экрана)
1
retmas
Жарю без масла
865 / 747 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
13.02.2012, 19:27 #6
Цитата Сообщение от sniperni Посмотреть сообщение
Спасибо за ответ!!! но я все же воспользовался функцией getch();
дело ваше, но cin.get(); тоже не вернет управление программе без нажатия ENTER
0
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
13.02.2012, 19:28 #7
Цитата Сообщение от retmas Посмотреть сообщение
дело ваше, но cin.get(); тоже не вернет управление программе без нажатия ENTER
cin.get() да, а getch() вернет

Цитата Сообщение от retmas Посмотреть сообщение
system("pause");
Ну это только под виндовс.
0
PashaShulga
1 / 1 / 2
Регистрация: 15.06.2010
Сообщений: 37
24.03.2013, 14:18 #8
Подскажите пожалуйста.
Данный код останавливает выполнение программы до первого нажатия на любую клавишу!? Мне необходимо получить код: если нужная кнопка не нажата не выполнять никаких действий, после нажатия на нужную кнопку выполнять программу дальше.
0
BumerangSP
4287 / 1409 / 463
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
24.03.2013, 17:48 #9
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C++
1
2
3
4
5
6
    std::cout<<"Before"<<'\n';
    char ch; 
    do {
        std::cin>>ch;
    } while (ch != 't'); // нужная клавиша
    std::cout<<"After"<<'\n';
0
R0adTr1p
0 / 0 / 1
Регистрация: 12.02.2013
Сообщений: 11
24.03.2013, 17:53 #10
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <Windows.h>
#include <conio.h>
#include <stdio.h>
 
int main()
{
    int i = 0;
    while(true)
    {
        while (getch())
        {
            printf("%d\n", i);
            i++;
        }
        Sleep(40); // не советую ставить меньше 10
    }
    return 0;
}
0
24.03.2013, 17:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2013, 17:53
Привет! Вот еще темы с решениями:

Обработка нажатия клавиши UP
enum key_codes {UP=38}; int_tmain (int argc, THCAR*argv) { keys() enum...

Выполнение до нажатия клавиши
Как сделать в консольке, чтобы программа выполнялась до нажатия клавиши, при...

Обработка нажатия клавиши
нужно задать нажатию клавиши enter другие функции: private: System::Void...

Имитация нажатия клавиши
Может кто помочь сделать прогу что бы она просто нажимала кнопку &quot;E&quot; с...


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

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

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