C++ Switch mit Char - "case-Ausdruck ist keine Konstante"



  • 2 Fehler entstehen:
    "case-Ausdruck ist keine Konstante"
    und
    'a': nicht deklarierter Bezeichner (mit allen, A, a, B, b, C, c)


    Was habe ich falsch gemacht?

  • So funktioniert das ganze jetzt.
    Musste zusätzlich noch das (float) hinzufügen, da sonst ja keine Umwandlung möglich ist.


  • Füge doch noch 2 Methoden hinzu. Die eine soll die Textausgabe mit Hilfe globaler Variablen (Gültigkeitsbereich beachten) übernehmen und die andere um die Werte korrekt umzurechnen (KEINE void Methode :-))


    Ps: Mit system("pause") pausierst du das gesamte Programm, hoffe das hast du nachgelesen.
    Nimm stattdessen cin.get();.

  • du weißt aber schon, dass das ein ganz schönes gehacke ist?


    was passiert, wenn iEingabe "abc" ist? Auch der switch mit Charaktern hat einen ganz faden Beigeschmack. Ich hätte das in ein enum class gepackt, oder gleich in eine extra Klasse ausgelagert.


    Und du machst float = (float) / int. Das geht zwar prinzipiell, ist aber Brechreizerzeugend. Sobald du casten musst, ist dein Design falsch. Überlege dir doch lieber eine Lösung, die nur mit floats (besser double, soviel Speicher hast du bestimmt) arbeitet.


    Das \n ist auch kritisch, nicht auf allen Systemen wird das so funktionieren. Die Zeilenenden sind nicht immer gleich. Da C++ prinzipiell auf jedem Betriebssystem laufen kann, würde ich die Umbrüche korrekt machen.


    Und warum machst du alle cases schön eingerückt und den default so hässlich auf dieselbe Zeile?

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird