• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed enum class c++

Object Storage Arubacloud
+1 głos
235 wizyt
pytanie zadane 17 czerwca 2021 w C i C++ przez Eriss69 Gaduła (4,470 p.)
zamknięte 17 czerwca 2021 przez Eriss69

Siemka!,

Załóżmy, ze mamy

 

int main()
{
    std::cout << "[1] Register" << std::endl;
    std::cout << "[2] Login" << std::endl;
    int choice;
    switch (choice)
    {
        case 1:
        {
            std::cout << "login \n";
            break;
        }
        case 2:
        {
            std::cout << "regis \n";
            break;
        }
    }
    
}

Chciałbym użyć enum class w taki sposób:

int main()
{
    enum class loginsys
    {
        login,
        regis
    };
}

Lecz jak dac możliwość użytkownikowi wyboru pomiędzy opcja 1 a 2?

Czytałem na Stack Overflow coś tam ale tam jest na sztywno to wprowadzone:

#include <iostream>

enum class E
{
    A,
    B
};

int main()
{
    E e = E::A;

    switch (e)
    {
    case E::A:
        std::cout << "A\n";
        break;
    case E::B:
        std::cout << "B\n";
        break;
    }
}

output: "A"

chciałbym stworzyć to tak żeby użytkownik mógł wybrać pomiędzy 1 a 2 gdyż w późniejszym kodzie mam więcej tych opcji i chciałbym to jakoś nazwać ładnie ..

 

komentarz zamknięcia: SOLVE
komentarz 17 czerwca 2021 przez j23 Mędrzec (194,920 p.)

Chodzi Ci o to, jak wartość z std::cin przekazać do switch?

int e;

std::cin >> e;

switch (static_cast<E>(e)) { ... }

 

komentarz 17 czerwca 2021 przez Eriss69 Gaduła (4,470 p.)
tak tak

1 odpowiedź

0 głosów
odpowiedź 17 czerwca 2021 przez TOM_CPP Pasjonat (22,640 p.)
edycja 17 czerwca 2021 przez TOM_CPP
 
Najlepsza

Problemem jest tutaj wczytanie do strumienia std::cin wartości typu class enum. Możesz to zrobić używając przeładowania operatora >>.

#include <iostream>

using namespace std;

enum class Type { NotDefined = 0 , Register = 1 , Login = 2 };

istream& operator>>( istream& in , Type& entry )
{
    int int_entry;   
    entry = ( in >> int_entry ) ? static_cast<Type>(int_entry) : Type::NotDefined;
    in.clear();
    in.ignore();
    return in;
}

int main()
{
    Type entry;

    cout << "[1] Register\n";
    cout << "[2] Login\n";

    do{ cin >> entry; }while( entry == Type::NotDefined );

    switch( entry )
    {
        case Type::Login:
            cout << "Login\n";
        break;
        case Type::Register:
            cout << "Register\n";
        break;
        default:
            cout << "Not defined type\n";
        break;
    }
}

 

komentarz 17 czerwca 2021 przez Eriss69 Gaduła (4,470 p.)
ale ten program prosi 2 razy o wprowadzenie czegos... sprawdzales?
Tzn, że po odpaleniu prorgramu 2 razy musze wpisac "1" zeby wybrac opcje register
komentarz 17 czerwca 2021 przez Eriss69 Gaduła (4,470 p.)
....
komentarz 17 czerwca 2021 przez Eriss69 Gaduła (4,470 p.)
Rozwiązane dziekuje!!!!!!!!

Podobne pytania

0 głosów
1 odpowiedź 215 wizyt
pytanie zadane 18 października 2020 w C i C++ przez NewEraOfPeace Gaduła (4,790 p.)
0 głosów
1 odpowiedź 202 wizyt
pytanie zadane 18 marca 2020 w C i C++ przez dal'sharum Nowicjusz (200 p.)
0 głosów
0 odpowiedzi 106 wizyt
pytanie zadane 16 maja 2020 w C i C++ przez dominik195k Obywatel (1,030 p.)

92,550 zapytań

141,394 odpowiedzi

319,522 komentarzy

61,935 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...