Befehle zum connecten auf servern und andere befehle.



  • Auch wenn du noch nicht lange mit C++ arbeitest, ein paar wichtige Dinge:

    1. C++ != Scriptsprache 😉 Scriptsprachen definieren sich darüber, dass sie von einem Interpreter interpretiert werden und nicht von einem Kompiler direkt in Maschinencode umgesetzt werden.

    2. Wie du schon selber festgestellt hast, sind "goto"-Anweisungen Teufelszeug. Wo auch immer du goto "gelernt" hast...diese Quelle solltest du nicht weiter verwenden, denn sie weißt dich offensichtlich nicht auf ihr Gefahrenpotential hin. goto ist ein "nice to know" und nicht mehr. Wohingegen if und else if Abfragen gang und gebe sind. Wobei du, wie du schon selber feststellst, hier lieber eine switch-Anweisung benutzen solltest, da dadurch dein Quelltext verständlicher zu lesen ist.

    Ansonsten kannst du drakon's Beispiel übernehmen...bis auf eine kleine Änderung 😉

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int wahl;
    
        do
        {
            //Jetz kommt das menü
            cout << " \a Mein Menue \n" << endl;
            cout << "Beenden               -> 0 <-" << endl;
            cout << "       Steam starten         -> 1 <-" << endl;
            cout << "       Ccleaner starten      -> 2 <-" << endl;
            cout << "       Teamspeak starten     -> 3 <-" << endl;
    
            cout << "Deine engabe ->" << endl;
            cin >> wahl;
    
            switch(wahl)
            {
            case 0:
                {
                    cout << " ->Enter<- zum Beenden" << endl;
                    fflush(stdin);
                    getchar();
                    return 0;
                }
    
            case 1:
                {
                    system("start C:\\Programme\\Steam\\steam.exe");
                    system("cls");
                    break;
                }
    
            case 2:
                {
                    system("start C:\\Programme\\CCleaner\\CCleaner.exe" );
                    system("cls");
                    break;
                }
    
            case 3:
                {
                    system("start C:\\Programme\\Teamspeak2_RC2\\TeamSpeak.exe" );
                    system("cls");
                    break;
                }
            default: break;
            }
        }while(wahl != 0);
    
        return 0;
    }
    

    also ich hab da ma ne frage zu deinem code:
    Es kommt nach system("cls"); der break; , dass heisst das programm schliesßt sich, darf es aber nicht! es muss offen bleiben, das ist wichitg. Deswegen sehe ICH keine andere Möglikeit ohne goto; auszukommen, oder wie?

    Nach einem "break" wird das Programm nicht beendet, sondern nur der Block, in dem es aufgerufen wurde, in diesem Fall die switch-Anweisung.



  • Nene. Das Programm beendet sich nicht. Der Screen wird einfach gelöscht und dann musst du hald die Ausgabe nochmal machen.

    Dann schieb das

    for(;;)
        {
    

    Doch einfach vor die Ausgabe.

    Beendet wird nur, wenn du 0 eingibst.



  • Ansonsten kannst du drakon's Beispiel übernehmen...bis auf eine kleine Änderung

    Naja. Das mit der vor der Ausgabe, stimme ich dir zu, habe es übersehen.
    Aber das andere macht nicht viel Sinn. Oder sag du mir mal, wann du das hier erreichst: 😉

    }while(wahl != 0);
    

    Das ist doppelt gemoppelt. 😉

    Und dass ich for(;; ) genommen habe, war aus dem Grund, da es (erschrekend) viele gibt, die das noch gar nicht kennen und nicht wissen, was man alles mit for anstellen kann. 😉



  • drakon schrieb:

    Ansonsten kannst du drakon's Beispiel übernehmen...bis auf eine kleine Änderung

    Naja. Das mit der vor der Ausgabe, stimme ich dir zu, habe es übersehen.
    Aber das andere macht nicht viel Sinn. Oder sag du mir mal, wann du das hier erreichst: 😉

    }while(wahl != 0);
    

    Das ist doppelt gemoppelt. 😉

    Und dass ich for(;; ) genommen habe, war aus dem Grund, da es (erschrekend) viele gibt, die das noch gar nicht kennen und nicht wissen, was man alles mit for anstellen kann. 😉

    Shit, ich hab "case 0:" übersehen 😉



  • Ok, ich sehe schon, Ich bin echt ein TOTALER Noob, was das angeht, aber ich werde mich einfach rannsetzen und weiterlernen!

    Dann nochmal Danke, dass ihr mir so schnell eine Antwort geben konntet, aber: Ich kann jetzt natürlich den Code von Berufspenner nehemn, das Problem ist nur, das es mit Sicherheit an default: break; lag, aber ich kann den code nicht verwenden, wenn ich nciht weiß, wieso es unten heißt:

    default: break;
    

    und alles geht, dann ist da noch, das in einer do while schleife eine switch case anweisung steckt, ist echt genail. Nun muss ich dir Berufspenner danken, dank sir kapier ich endlich die do while schleiße, bis heute habe ich sie nicht gecheckt!

    Aber welchen Code soll ich denn jetz nehmen? mit der do while und geht es aber das mit fo(;;) kapier ich nicht.

    Kann mir das bitte einer von euch erklären? Danke!!

    Mfg André N.



  • Ok, ich sehe schon, Ich bin echt ein TOTALER Noob, was das angeht, aber ich werde mich einfach rannsetzen und weiterlernen!

    Dann nochmal Danke, dass ihr mir so schnell eine Antwort geben konntet, aber: Ich kann jetzt natürlich den Code von Berufspenner nehemn, das Problem ist nur, das es mit Sicherheit an default: break; lag, aber ich kann den code nicht verwenden, wenn ich nciht weiß, wieso es unten heißt:

    default: break;
    

    und alles geht, dann ist da noch, das in einer do while schleife eine switch case anweisung steckt, ist echt genail. Nun muss ich dir Berufspenner danken, dank sir kapier ich endlich die do while schleiße, bis heute habe ich sie nicht gecheckt!

    Aber welchen Code soll ich denn jetz nehmen? mit der do while und geht es aber das mit fo(;;) kapier ich nicht.

    Kann mir das bitte einer von euch erklären? Danke!!

    Mfg André N.

    p.s: verdammter smiley



  • fflush(stdin); sollte noch entfernt werden, undefined behaviour, wenn ich mich richtig erinnere.



  • Eine switch-Anweisung macht ja nichts anderes, als dass man ihr ein Variable übergibt und überprüfen läßt, welchen Wert sie hat. Die Überprüfung findet durch die "case"-Ausdrücke statt. Das "default" wird aufgerufen, wenn keiner der "cases" erfüllt ist. Sollte deine Variable "wahl" einen anderen Wert als 0,1,2 oder 3 haben, dann tritt der "default"-Fall ein und das break bewirkt einfach nur, dass die switch-Anweisung dann verlassen wird.

    for(;;)
    

    ist das gleiche wie

    while(1)
    

    also eine Endlosschleife. Folgenden Code solltest du jetzt verwenden können

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int wahl;
    
        do
        {
            //Jetz kommt das menü
            cout << " \a Mein Menue \n" << endl;
            cout << "Beenden               -> 0 <-" << endl;
            cout << "       Steam starten         -> 1 <-" << endl;
            cout << "       Ccleaner starten      -> 2 <-" << endl;
            cout << "       Teamspeak starten     -> 3 <-" << endl;
    
            cout << "Deine engabe ->" << endl;
            cin >> wahl;
    
            switch(wahl)
            {
            case 0:
                {
                    cout << " ->Enter<- zum Beenden" << endl;
                    getchar();
                    return 0;
                }
    
            case 1:
                {
                    system("start C:\\Programme\\Steam\\steam.exe");
                    system("cls");
                    break;
                }
    
            case 2:
                {
                    system("start C:\\Programme\\CCleaner\\CCleaner.exe" );
                    system("cls");
                    break;
                }
    
            case 3:
                {
                    system("start C:\\Programme\\Teamspeak2_RC2\\TeamSpeak.exe" );
                    system("cls");
                    break;
                }
            default: break;
            }
        }while(1);
    }
    

    PS: Ich will ja jetzt nicht deinen Eifer und dein Interesse am Programmieren dämpfen 😉 aber du solltest wirklich nochmal ernsthaft mit den Basics von C++ beschäftigen. Entweder kaufst du dir dazu ein gutes C++ Buch oder gehst mal in die örtliche Bibliothek und leist dir dort ein Buch aus, dass nicht grad älter als 2 oder 3 Jahre ist. Das schützt dich selber vor jeder Menge Frust 😉



  • Ok, danke Penner (xD) kannst du mir noch einen gefallen tuhen? Ich programmier auch mit/unter Linux, und suche nun schon laaange nach nem Buch, was sich für C++ allgemein gut eignet, gibt da nur ein Problem: Es gibt ZU VIELE BÜCHER!!! welches hast du verwendet oder würdest du mir empfehlen?

    Danke schonmal, ist echt nett von dir!

    Mfg André N.



  • Momentan arbeite ich mich gerade mit dem Buch C++ Primer neu in C++ ein. Ich finde das Buch sehr gut und es geht auch sehr modern mit den Vorzügen von C++ um. Ansonsten ist C++: Einfürung und professionelle Programmierung auch ein sehr sehr gutes Buch.



  • mhh.. ja danke, aber vll sollte ich noch ein paar Zeilen dazu schreiben:

    Ich bin 15 Jahre alt und habe kein geld 😉 du hast mir jetzt 3 Bücher vorgeschlagen, das ist nciht gut... jetzt weiß ich nicht welches ich nehmen sollte!

    Zur info: Ich habe mir schoneinmal die DvD Video2Brain: Jetzt lerne ich C++ , von Helge Maus angeschaut.

    Danke!

    Mfg André N.



  • Ok, eigentlich hab ich dir nur 2 Bücher vorgeschlagen 😉 Und naja, Bücher sind halt geschmackssache. Du wirst wohl nicht drum herum kommen einmal in den Buchladen deines Vertrauens zu gehen und dort einen Blick in beide Bücher zu werfen 😉 Rein subjektiv würde ich dir momentan wohl tendenziellen eher den C++ Primer empfehlen.

    PS: Ich bin Student und hab auch kein Geld :p



  • 😃 weißt du, ich mag Dich!... Danke , ich werde mal schauen, ob ich es bekomme!

    Danke!!!

    Mfg André N.



  • Ich bin 15 Jahre alt und habe kein geld 😉 du hast mir jetzt 3 Bücher vorgeschlagen, das ist nciht gut... jetzt weiß ich nicht welches ich nehmen sollte!

    Kannst dir ja den Primer zutun. Der sollte für den Anfang mal reichen.

    Und wenn du kein Geld hast, dann kannst du ja deine Eltern anhauen. Ist ja schliesslich für etwas gutes, wenn du etwas lernen willst. 🙂 - Ich denke mal nicht, dass sie dir das verwehren. Und ansonsten brauchste hald gute Argumenten. 😉



  • Oder du leihst dir einige Bücher aus. So hab ich auch angefangen, C++ zu lernen (und im Moment hab ich wieder gerade einige ausgeliehen). Aber langfristig ist es vielleicht schon besser, du kaufst dir Bücher, damit du sie auch als Nachschlagewerk benutzen kannst.



  • Hey, danke Leute, aber nochmal was anderes, habe meinen Code nun überarbeitet:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
              int wahl;
              do{
    
              //Jetz kommt das menü
              cout << "    Mein Menue \n" << endl;
              cout << "Beenden               -> 0 <-" << endl;
              cout << "       Steam starten         -> 1 <-" << endl;
              cout << "       Ccleaner starten      -> 2 <-" << endl;
              cout << "       Teamspeak starten     -> 3 <-" << endl;
              cout << "       Oeffne D:\             -> 4 <-" << endl;
              cout << "       Trillian starten      -> 5 <- " << endl;
              cout << "       Mozilla starten       -> 6 <- \n" << endl;
    
              cout << "       GAMES" << endl;
              cout << "       Driver starten        -> 10 <-" << endl;
              cout << "       BF2 starten           -> 11 <-" << endl;
              cout << "       NFSU2 starten         -> 12 <-" << endl;
              cout << "       Hamachi starten       -> 13 <-" << endl;
              cout << "       GRAW starten          -> 14 <-" << endl;
              cout << "       S.T.A.L.K.E.R         -> 15 <- " << endl;
              cout << "       Runterfahren          -> 19 <- " << endl;
              cout << "       RR machen             -> 20 <- \n" << endl;
    
              cout << "Deine engabe ->" << endl;
              cin >> wahl;
    
             switch(wahl)
             {
             case 0:
             {  
                      cout << " ->Enter<- zum Beenden" << endl;
                      getchar();
                      return 0;
             }
    
             case 1:
             {
                       system("start C:\\Programme\\Steam\\steam.exe");
                       system("cls");
                       break;
             }  
    
              case 2:
              {
                       system("start C:\\Programme\\CCleaner\\CCleaner.exe" );
                       system("cls");
                       break;
              }
    
              case 3:
              {
                       system("start C:\\Programme\\Teamspeak2_RC2\\TeamSpeak.exe" );
                       system("cls");
                       break;
              }
    
              case 4:
              {
                       system("start D:\\" );
                       system("cls");
                       break;
              }
              case 5:
              {
                       system("start C:\\Programme\\Trillian\\trillian.exe" );
                       system("cls");
                       break;
              }
              case 6:
              {
                     system("start C:\\Programme\\Mozilla\\firefox.exe");
                     system("cls");
                     break;
              }
              case 10:
              {
                     system("start C:\\Programme\\Ubisoft\\DriverParallelLines\\DriverParallelLines.exe");
                     system("cls");
                     break;
              }
              case 11:
              {
                     system("start C:\\Programme\\EAGAMES\\Battlefield2\\BF2.exe");
                     system("cls");
                     break;
              }
              case 12:
              {
                     system("start C:\\Programme\\EAGAMES\\Need for Speed Underground 2\\speed2.exe");
                     system("cls");
                     break;
              }
              case 13:
              {
                     system("start C:\\Programme\\Hamachi\\hamachi.exe");
                     system("cls");
                     break;
              }
              case 14:
              {
                     system("start C:\\Programme\\GRAW\\GRAW.exe");
                     system("cls");
                     break;
              }
              case 15:
              {
                     system("start D:\\Programs\\S.T.A.L.K.E.R\\bin\\XR_3DA.exe");
                     system("cls");
                     break;
              }
    
              case 19:
              {
                     system("start shutdown.exe -s");
              }
              case 20:
              {
                     system("start shutdown.exe -r");
              }
    
              default: break;
            }
    
        } while(1);
    
    }
    

    Nun noch 1, 2 Fragen: Nun kommt ja nach der letzten case das

    default: break; }
    

    aber wieso die "}" ? es wurde gar keine geöffnet, genau das wie bei

    hwile(1); }
    

    da ist es genau so... und dann noch zum while, wieso 1? da ist doch gar keine bedingung gesetzt. o.Ô ?!

    Danke schonmal!!

    Mfg André N.



  • Die geschweifte Klammer hinter dem "default: break;" gehört zum switch-Block

    switch(wahl)
    {
       //hier steht dein Code
    } <-- Das ist die geschweifte Klammer, die dich irretiert
    

    und die zweite gehört zum Block der Main-Funktion. Da ist genau so, wie bei der switch-Anweisung.



  • 😃 (Sorry hab nen Lachkrampf) 😃 Danke, ja! :D:D die klammer ok, guut alles klar, danke! 😃 ok, das war guuut!

    Danke!!! ich denke mal, ich habe eine gute Bezugsperson gefunden...

    Mfg André N.



  • wenn du bei großen Blöcken die Klammer-Zusammenhänge nicht mehr einfach so durchblickst, kann dir ein guter Text-Editor, z.B. der deiner IDE (z.B. Visual C++ [Express]), oder stand-alonde (z.B. Vim) gute Dienste erweisen.



  • Hey danke also,

    es hat sich mal wieder ein neues Problem gestern Nacht angebahnt und dies ist folgendes:
    Ich habe versucht noch eine abfrage in meinen Quellcode zu schreiben, leider geht er die abfrage, da es 2 sind, beide durch, was er aber nicht soll, denn wenn ich einmal NEIN sage, bin ich mir dabei total sicher, hier der Quellkode:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
              int wahl;
              string abfrage;
              char best, best2;
    
              do{
    
              //Jetz kommt das menü
              cout << "    Mein Menue \n" << endl;
              cout << "Beenden               -> 0 <-" << endl;
              cout << "       Steam starten         -> 1 <-" << endl;
              cout << "       Ccleaner starten      -> 2 <-" << endl;
              cout << "       Teamspeak starten     -> 3 <-" << endl;
              cout << "       Oeffne D:\             -> 4 <-" << endl;
              cout << "       Trillian starten      -> 5 <- " << endl;
              cout << "       Mozilla starten       -> 6 <- \n" << endl;
    
              cout << "       GAMES" << endl;
              cout << "       Driver starten        -> 10 <-" << endl;
              cout << "       BF2 starten           -> 11 <-" << endl;
              cout << "       NFSU2 starten         -> 12 <-" << endl;
              cout << "       Hamachi starten       -> 13 <-" << endl;
              cout << "       GRAW starten          -> 14 <-" << endl;
              cout << "       S.T.A.L.K.E.R         -> 15 <- " << endl;
              cout << "       Runterfahren          -> 19 <- " << endl;
              cout << "       RR machen             -> 20 <- \n" << endl;
    
              cout << "Deine engabe ->" << endl;
              cin >> wahl;
    
             switch(wahl)
             {
             case 0:
             {  
                      cout << " ->Enter<- zum Beenden" << endl;
                      getchar();
                      return 0;
             }
    
             case 1:
             {
                       system("start C:\\Programme\\Steam\\steam.exe");
                       system("cls");
                       break;
             }  
    
              case 2:
              {
                       system("start C:\\Programme\\CCleaner\\CCleaner.exe" );
                       system("cls");
                       break;
              }
    
              case 3:
              {
                       system("start C:\\Programme\\Teamspeak2_RC2\\TeamSpeak.exe" );
                       system("cls");
                       break;
              }
    
              case 4:
              {
                       system("start D:\\" );
                       system("cls");
                       break;
              }
              case 5:
              {
                       system("start C:\\Programme\\Trillian\\trillian.exe" );
                       system("cls");
                       break;
              }
              case 6:
              {
                     system("start C:\\Programme\\Mozilla\\firefox.exe");
                     system("cls");
                     break;
              }
              case 10:
              {
                     system("start C:\\Programme\\Ubisoft\\DriverParallelLines\\DriverParallelLines.exe");
                     system("cls");
                     break;
              }
              case 11:
              {
                     system("start C:\\Programme\\EAGAMES\\Battlefield2\\BF2.exe");
                     system("cls");
                     break;
              }
              case 12:
              {
                     system("start C:\\Programme\\EAGAMES\\Need for Speed Underground 2\\speed2.exe");
                     system("cls");
                     break;
              }
              case 13:
              {
                     system("start C:\\Programme\\Hamachi\\hamachi.exe");
                     system("cls");
                     break;
              }
              case 14:
              {
                     system("start C:\\Programme\\GRAW\\GRAW.exe");
                     system("cls");
                     break;
              }
              case 15:
              {
                     system("start D:\\Programs\\S.T.A.L.K.E.R\\bin\\XR_3DA.exe");
                     system("cls");
                     break;
              }
    
              case 19:
              {
                     string abfrage2 = "Bist du dir wirklich sicher? (j/n)";
                     cout << abfrage2 << endl;
                     cin >> best2;
              }
              case 20:
              {
                     string abfrage = "Bist du dir sicher? (j/n)";
                     cout << abfrage << endl;
                     cin >> best;
              }
    
              do{       //Unschwer zu sehen, das ich hier nicht weiterkomme... :(
              switch(best2)
                                                              {
              case 'j':
              {
                   system("shutdown.exe -s");     
              }      
    
              case 'n':
              {
                   system("cls");
                   break;     
              }
    
                                                              }
                                                              }while(/* ??? */);
    
              switch(best)
                                                           {
    
              case 'j':
              {
                       system("shutdown.exe -r");  
              }
    
              case 'n':
              {
                      system("cls");
                      break; 
              }
    
                                                             }
    
              default: break;
            }
    
        } while(1);
    
    }
    

    nun wenn ich bei der 20 , 'n' wähle, dann sollte er mit dem normalen Kode weitermachen, aber er fragt trotzdem nochmal die von der 19 ab. Weiß da einer Rat???

    Danke!!

    Mfg André N.


Anmelden zum Antworten