Как внедрить случай "ENTER" в оператор switch - PullRequest
1 голос
/ 04 ноября 2019

Я работаю над классным проектом, в котором мне нужно создать систему заказов для кафе на C ++. Если это применимо, я работаю в Visual Studio.

В общих чертах проекта учитель сказал, что для навигации по меню есть простой целочисленный ввод;однако он указывает, что если НИЧЕГО не введено (я предполагаю, что я видел, что это называется «горячим вводом»), он вычисляет квитанцию ​​и программа сбрасывает.

Я попробовал cin.get ()и проверка, является ли буфер '\ n', и это прекрасно работает, но моя текущая реализация, кажется, способна только захватить горячий ввод и не может перейти в регистр коммутатора.

Для получения ввода от пользователя, я в настоящее время пробовал это:

        // Get menu input
        if (cin.get() == '\n') {    // Check if user hot entered, assign value if so
            input = 0; 
        } else {                    // If not, do it normally
            input = cin.get();
        }

Однако это работает не совсем правильно и не в состоянии захватить введенные целые числа для использования в случае переключателя. Я не уверен, что такого рода реализация обоснована в рассуждениях, или существует ли гораздо более простой способ иметь дело для горячего ввода.

Я не получаю никаких ошибок, поэтому я предполагаю, что естьчто-то не так с моим пониманием того, как работают эти функции, или моя реализация имеет недостатки в своей логике.

Спасибо.

1 Ответ

2 голосов
/ 04 ноября 2019

Вы использовали cin.get() дважды. Второй cin.get() в input = cin.get(); является избыточным.

// Get menu input
    input = cin.get();
    if (input == '\n') {    // Check if user hot entered, assign value if so
        input = 0; 
    } 
//else {      // If not, do it normally
//         input = cin.get();
//     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...