Обработка клавиш

Здравствуйте! Я пишу программу на С++, в которой если пользователь хочет продолжить,
то нажимается «1», а в случае выхода — «2». Вот пример усечённой программы:

#include <iostream> 
using namespace std;
int main() 
{ 
  setlocale(0, "");
do 
{
     cout<<"Фраза ..."<<endl;
    cout<<endl;
    cout<<"Хотите продолжить?"<<endl;
    cout<<"1 - Да!"<<endl;
    cout<<"2 - Нет, спасибо."<<endl; 
    cout<<endl; 
    cin>>e;
    cout<<endl;
    if (e=='2') break;

    if (e!='1' && e!= '2')
    {
        cout<<"Ошибка! Вам надо было нажать 1 или 2. "<<endl;
        system("pause"); 
        cout<<endl;
    }
    } // конец 
    while (e=='1');
    cout<<" К О Н Е Ц    ";
    cout<<endl<<endl;
    cout<<" Всего доброго! "<<endl;
    cout<<endl; 
    system("pause>>VOID");

    return 0; 
}

Хотелось бы, чтобы в случае продолжения нажималось Enter, а в случае выхода — Escape.
Подскажите, пожалуйста, как это можно сделать.

beginner, благодарю за ссылку! Только у меня так и не получилось исправить...

Что, конкретно, не получилось?
Тестовую программу пробовали написать?
Если — да, то выкладывайте код, посмотрим, обсудим, поможем ;)

Теперь уже всё получилось! УРА!!!
Наверное, в первый раз я чего-то не так сделала...

Вот изменённый код:

#include <iostream> 
#include <conio.h>

using namespace std;

int main() 
{ 
    setlocale(0, "");
    int i_input;

    do 
    {
        cout<<"Фраза ..."<<endl;
        cout<<endl;
        cout<<"Для продолжения нажмите Enter."<<endl;
        cout<<"Для выхода нажмите любую другую клавишу. "<<endl;
        cout<<endl; 
        i_input = getch();
        cout<<endl;
    } // конец

    while (i_input==13);

    cout<<" К О Н Е Ц    ";
    cout<<endl<<endl;
    cout<<" Всего доброго! "<<endl;
    cout<<endl; 
    system("pause>>VOID");

    return 0; 
}

beginner, СПАСИБО!!!

А вот ещё пример (который мне даже больше нравится):

#include <iostream> 
#include <conio.h>

using namespace std;

int main() 
{ 
    setlocale(0, "");
    int i_input;

    while (1)
    {
        cout<<"Фраза..."<<endl;
        cout<<"Для продолжения нажмите любую клавишу."<<endl;
        cout<<"Для выхода нажмите Esc. "<<endl;
        cout<<endl;
        i_input = getch();
        cout<<endl;
        if (i_input==27) break;
    }

    cout<<endl<<endl;
    cout<<"К О Н Е Ц    ";
    cout<<endl<<endl;
    cout<<endl; 
    system("pause>>VOID");

    return 0; 
}

Оказывается, чтобы была доступна функция getch(); надо добавить #include <conio.h>

Croessmah, Вы хотите сказать, что вместо system(«pause>>VOID»);
надо написать system(«pause >> NUL»); ?
Проверила — работает. А откуда инфа?

А откуда инфа?

Что значит откуда? Изучайте документацию по используемым средствам. В данном случае перенаправление потоков вывода в пустое устройство (NUL в Windows)

Подскажите, пожалуйста, как смотреть документацию? Какие кнопки нажимать?

Скажите, пожалуйста, как обработать клавиши мыши, так как в выложенном здесь материале не имеется числа для мыши?

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.