Switch Quantity not an integer



  • Diese Fehlermeldung kriege ich ihn diesem Code:

    int UI_Options ()
    {
    string wahl;
    string *pointer = &wahl;
    textcolor (FG_BLUE);
    gotoxy (150,400);
    
    while (true)
    {
    string WANNADEALWITHHARDOK,WANNADEALWITHTIMO;
    WANNADEALWITHHARDOK = "Hardoksprechenichwill" or "Hardok_sprechen_ich_will";
    WANNADEALWITHTIMO   = "Timosprechenichwill" or "Timo_sprechen_ich_will";
    cout<<"Moegliche Befehle : "<<nz<<"'Hardok' --> Handel mit Hardok"<<nz<<"'Timo' --> Handel mit Timo";
    cin>>wahl;
    
    switch (wahl)
    {
           case WANNADEALWITHHARDOK:
                {
                                    clrscr();gotoxy(0,0);textcolor(FG_BLACK);con.setCurSize(100);
                                    cout<<"Held : Hey Hardok, was haste denn anzubieten?"<<nz<<
                                    "Hardok : Ein kleines Schwert, mein Held";
                }
           case WANNADEALWITHTIMO:
                {
                                  clrscr();gotoxy(0,0);textcolor(FG_BLACK);con.setCurSize(100);
                                  cout<<"Held : Was haste denn heute schoenes, Timo?"<<nz<<
                                  "Hardok : Eine Axt";
                }
    
    }
    }
    

    Ihr seht, dass ich Extrastrings für die Eingabe benutzt habe. Ich will keine If Abfragen benutzen, weil das doch nur Anfänger tun.

    PS: Das ist natürlich nur ein Teil des Codes 😉

    MfG, C++Progger



  • C++Progger schrieb:

    Ich will keine If Abfragen benutzen, weil das doch nur Anfänger tun.

    quatsch. switch/case sieht nur im code schick aus. was der compiler daraus macht ist entscheidend und bei einem switch mit nur 2 pfaden ist sicher ein if/else auch nicht verkehrt.



  • Und egal wie elegant es aussieht - switch() funktioniert nur mit ganzzahligen Werten, nicht mit Strings.

    (btw, was soll denn das sein: "WANNADEALWITHHARDOK = "Hardoksprechenichwill" or "Hardok_sprechen_ich_will";"?)



  • CStoll schrieb:

    (btw, was soll denn das sein: "WANNADEALWITHHARDOK = "Hardoksprechenichwill" or "Hardok_sprechen_ich_will";"?)

    LOL^^. Das war ein kleiner Spass für mich selbst^^. Also diese Stringvariablen sollen zwei Inhalte haben, jeweils durch 'or' getrennt. Damit man beides eigeben darf...

    MfG, C++Progger



  • Mich wundert, daß du diese Konstruktion durch den Compiler bekommen hast. Ein String kann nur einen Wert gleichzeitig haben - und ein operator or für Strings ist überhaupt nicht definiert (selbst mit "#define or |").



  • Hat auf jeden Fall nichts mit der Win32-Konsole zu tun. Ab nach C++.

    MfG SideWinder



  • Dieser Thread wurde von Moderator/in SideWinder aus dem Forum DOS und Win32-Konsole in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten