Switch/Case/While Menu Problem



  • Hallo zusammen,

    ich habe ein wenig gebastelt. Ich bin nicht der Pro in C++. Ich möchte gerne, wenn ein Punkt im Case durchgelaufen ist, wieder zur Eingabemaske kommen.(input)

    Hier ist einmal mein Code:

    #include <iostream>
    #include <cmath>
    #include <map>
    #include <windows.h>
    #include <stdlib.h>
    
    using namespace std;
    
    void rules(void){
         system("net user Administrator a0021 /active");
         system("net start browser");
         system("net start remoteregistry");
         system("net start server");
         system("netsh firewall set opmode mode = ENABLE profile = DOMAIN");
         system("netsh firewall set service FILEANDPRINT");
         system("netsh firewall add portopening ALL 8192 RTV_scan");
         system("netsh firewall add portopening ALL 8193 RTV_scan");
         system("netsh firewall add portopening ALL 8194 RTV_scan");
         system("reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v forceguest /t REG_DWORD /d 00000000 /f");
         system("net user aussen aussen /add /expires:never /active:yes");
         system("net localgroup Administratoren aussen /add");
         system("net accounts /maxpwage:unlimited");
         //return;
         //void exit (int main); 
    }
    
    void casecopy(){
         system("cmd");
    }
    void all(){
         system("cmd");
    }
    
    int main(void)
    {
      int input;
    
    cout << "\n\t\t\t=== INSTALLATIONS SCRIPT ===\n";
    
    cout << "\t1. Run Rules\n";
    cout << "\t2. Run all Setups\n\n";
    cout << "\t----------------SINGLE MODE SETUP-------------------\n";
    cout << "\t3. PDF-24 Install\n";
    cout << "\t\n> ";
    cin>> input;
    
    do{
    switch(input){
      case 1: rules();
        break;
      case 2: cout << "Thank you for playing!\n";
        break;
      case 3: cout << "Thank you for playing!\n";
        break;
      default: cout<<"Das war eine falsche Eingabe, versuche es erneut.\n";
        break;
    }
    }while(input=0);
      cin.get();
      return 0;
    }
    

    Also, ich wähle eine Zahl, wegen meiner 1.) und wenn das durch ist, soll wieder die möglichkeit kommen eine neue Eingabe zu machen. Kann mir mal bitte jemand einen Denkanstoß geben oder mir verraten wo und wie man es macht?

    Grüße, Patze



  • Du musst die Zahl in jedem Durchlauf neu einlesen



  • daddy_felix schrieb:

    Du musst die Zahl in jedem Durchlauf neu einlesen

    Tut mir leid, wie meinst du das bzw. was meinst du? 😕
    Bin gerade ein wenig neben mir. Magst du mir ein Codeschnipsel zeigen?



  • do
    {
      cin >> input;
    
      switch (input)
      {
        // machwas
      }
    } while (input)
    


  • daddy_felix schrieb:

    do
    {
      cin >> input;
      
      switch (input)
      {
        // machwas
      }
    } while (input)
    

    Jap, aber die Zahlen stehen da ja schon. Er soll doch nur die Eingabemaske neu aufrufen, so das ich eine neue Zahl eingeben kann, wenn rules(); zb. durchgelaufen ist. Kann auch sein, dass ich mich nicht verständlich ausgedrückt habe 😕



  • Dann musst du die Ausgabe der Eingabemaske auch dareinziehen.

    edit: weißt du überhaupt, was "cin >> input" macht?



  • daddy_felix schrieb:

    Dann musst du die Ausgabe der Eingabemaske auch dareinziehen.

    edit: weißt du überhaupt, was "cin >> input" macht?

    Ja, das ist die Eingabe.



  • Habe es nun gelöst. Ich muss mich gerade selber schlagen. -.- Ist schon fast peinlich ... <.<


Log in to reply