Forum: Programmerings övning med enum.

Forum huvudsida -> Programmering -> Programmerings övning med enum.

Sidor: 1

Till botten

Gnerf 19:33 - 21:a Februari 2007 | Post #1
Medlem
Inlägg: 25


Skicka PM
Har efter ett par veckors läsning lyckats ta mig till dom svåra bitarna verkar det som. Här körde det iaf fast.

-vningen går ut på att: " Skriv ett programm som visar ditt förnamn, efternamn, vilket betyg man vill ha och hur gammal man är ". Sen ska man gå ner ett steg från det betyg man vill ha, till det man har nu (t.ex om man vill ha ett A, så har man ett B).
Det är där det kör fast.
  1. #include <iostream>
  2. int main()
  3. {
  4. using namespace std;
  5. cout << " vad heter du i förnamn? ";
  6. char namn[20];
  7. cin.getline(namn,20);
  8. cout << " Vad heter du i efternamn? ";
  9. char efternamn[20];
  10. cin.get(efternamn,20);
  11. cout << " Vilket betyg borde du få? ";
  12. enum betyg{A = 1, B = 2, C = 3};
  13. betyg val;
  14. cin >> val;
  15. val = val - 1;
  16. cout << " Hur gammal är du? ";
  17. int gammal;
  18. cin >> gammal;
  19. cout << " Namn: " << namn << endl;
  20. cout << " Efternamn: " << efternamn << endl;
  21. cout << " Betyg: " << val << endl;
  22. cout << " ...lder: " << gammal;
  23. cin.get();
  24. cin.get();
  25. return 0;
  26. }


Den (kompilatorn) verkar inte gilla att jag försöker definiera enumerationen med cin.

"no match for 'operator>>' in 'std::cin >> val'"

All hjälp upskattas, särskilt sån som hjälper =)
tack på förhand.



-------------------------
Ingen signatur!



Slash 20:03 - 21:a Februari 2007 | Post #2
Medlem
Inlägg: 141


Skicka PM
Namnen på konstanterna i enum:s finns bara under compile-time, som då byts ut mot siffrorna som konstantnamnet motsvarar. Så fort ditt program körs så är det alltså bara siffror. Vad gäller ditt problem så vet jag faktiskt inte hur det är brukligt att göra om man vill läsa in värden till en enum med cin. Ena alternativet är ju att överlagra >>-operatorn (ingår antagligen inte i din kurs). Det andra som jag kan komma på är:

  1. int input;
  2. betyg val;
  3.  
  4. cin >> input;
  5. val = (betyg)input;


-------------------------
Ingen sigantur!



Gnerf 20:37 - 21:a Februari 2007 | Post #3
Medlem
Inlägg: 25


Skicka PM
Hm, programmet körs utan några problem nu, men det vill fortfarande inte skriva ut namn, betyg etc.

Ska kolla en gång till om det inte finns en operator som gör allt jobb åt en :-)

Tack för hjälpen iaf.

edit:
hittade ett listigt sätt lite längre bak som jag kunde använda mig av, och nu funkar det perfek =)

  1. char betyg[5] = "ABC";
  2. int vilket;
  3. cin >> vilket;
  4. vilket = vilket + 1;
  5. cout << " Betyg: " << betyg[vilket] << endl;




-------------------------
Ingen signatur!

Senast redigerad 21:11 - 21:a Februari 2007


Sidor: 1

Forum huvudsida -> Programmering -> Programmerings övning med enum.
Atom feed

Du får inte posta i den här tråden | Till toppen