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

Problemu z typem wyliczeniowym ,,enum''

0 głosów
384 wizyt
pytanie zadane 2 lipca 2016 w C i C++ przez Niebieski_Zerg Użytkownik (610 p.)
edycja 2 lipca 2016 przez Niebieski_Zerg

Witam :) (tutaj jest wstęp) Od niedawana uczę się programować(około 1 miesiąca). Uczę się Od M.Zelenta i ,,Od zera do gier kodera'' (tu jest już problem) niedawno poznałem typ enum i chciałem dodać do niego switcha by był wolny wybór(wiem że nie można przypisać do niego w prost danej wartości takich jak:

enum Proste_Komendy {Dodawanie = 1, Odejmowanie = 2};
Proste_Komendy Liczba;
Liczba = 1;

Lecz teraz chciałem użyć switcha by wybór mógł być użytkownika i nie wiem zbytnio jak :/ Patrzałem na forum co i jak ale nic mi to nie dało do zrozumienia, oprócz tego że ludzie do enuma używają klas i innych dzikich rzeczy, których jeszcze nie znam. Teraz pytanie, czy Ktoś z was by mógł powiedzieć jak przerobić ten kod by można było mieć swobody wybór między tymi dwoma opcjami, a nie na sztywno wszytsko? (przykład robiony tak by pokazać mój problem). Jakby to komuś pomogło strona w ,,Od zera do gier kodera'' to 123, a u M.Zelenta to 9odc.

#include <iostream>

using namespace std;

int main()
{

   
   enum prosta_budowa{Dodawanie = 0, Odejmowanie = 1};
  
   prosta_budowa Liczba;
   Liczba = Dodawanie;
    switch(Liczba)
   {
   case Dodawanie:
   {
    cout << "+++++++++";
   }
    break;

   case Odejmowanie:
   {
    cout << "-------";
   }
    break;
   }

   return 0;
}


 


 

1 odpowiedź

+1 głos
odpowiedź 2 lipca 2016 przez Muminek Dyskutant (8,650 p.)

Liczba jest zmienną do której można podstawić tylko jedną z określonych na liście Proste_Komendy wartośći:

Czyli:

liczba = Dodawanie; 

liczba = Odejmowanie;

To jest dobrze
liczba = 1; 

liczba = 2;

To  nie, ponieważ to nie są elementy listy wyliczeniowej mimo, że wartość liczbowa jest taka sama

 

komentarz 2 lipca 2016 przez Niebieski_Zerg Użytkownik (610 p.)
Teraz uaktualniłem więc jak możesz to spr od początku, ponieważ wtedy all się usunęło :p
komentarz 2 lipca 2016 przez Muminek Dyskutant (8,650 p.)

Jak dla mnie ten kod działa. Przy dodawaniu wypisuję +++.

http://ideone.com/WxU2Qa - kod online. 

komentarz 3 lipca 2016 przez Niebieski_Zerg Użytkownik (610 p.)
No działać działa, lecz mi chodziło o to by można własnoręcznie wybierać między dodawanie a odejmowanie przy jednoczesnym używaniu enuma :p i dlatego pytam czy tak się da zrobić :>
komentarz 3 lipca 2016 przez Muminek Dyskutant (8,650 p.)

Możesz to w ten sposób rozwiązać, pamiętaj, że enum reprezentuje typ liczb całkowitych. :)

#include <iostream>

using namespace std;

int main()
{

enum prosta_budowa{Dodawanie = 0, Odejmowanie = 1};

int Liczba = 0;
cin >> Liczba; // "własnoręczny" wybór

switch(Liczba) 
{
// sprawdzana jest wartość zmiennej z wartością zmiennej typu wyliczeniowego
case Dodawanie: // korzystanie z listy wyliczeniowej
{
cout << "+++++++++";
}
break;

case Odejmowanie:
{
cout << "-------";
}
break;
}

return 0;
}

 

komentarz 3 lipca 2016 przez Niebieski_Zerg Użytkownik (610 p.)
O dzięki ci stary :D samemu było mi trudno na to wpaść bo nowy xd Dzięki jeszcze raz masz tutaj plusika :)

Podobne pytania

–5 głosów
1 odpowiedź 330 wizyt
pytanie zadane 16 maja 2017 w C i C++ przez KacperKow Nowicjusz (180 p.)
–3 głosów
1 odpowiedź 459 wizyt
pytanie zadane 20 maja 2017 w C i C++ przez KacperKow Nowicjusz (180 p.)

93,743 zapytań

142,680 odpowiedzi

323,299 komentarzy

63,330 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...