strcmp funktioniert nicht richtig



  • Hi,

    ich bin neu hier und hoffe dass ich meine fragen die ich über google nicht beantworten konnte hier beantwortet bekomme....

    Zu meinem proplem....

    std::string temp = buf;
              if(temp.find(":") != std::string::npos)
              {
                    path = GetWorkPath();
                    path += "\\config.ini";
                    const_cast<char*>(path.c_str());
                    char pw[100];
                    GetPrivateProfileString("WICHTIG","Passwort","NULL",pw,100,s);
                    if(strcmp(pw,buf) == 0);
                    {
                        logged[i] = 1;
                        sprintf(buf2,"Erfolgreich eingeloggt!");
                        send(clients[i],buf2,(int)strlen(buf2),0);
                    }
              }
    

    Das proplem besteht darin, dass egal ob buf = pw ist oder nicht immer die nachhricht Erfolgreich eingeloggt kommt.... ich weis wirklich nicht was ich falsch mache....

    InFaIN



  • InFaIN schrieb:

    if(strcmp(pw,buf) == 0);
    


  • InFaIN schrieb:

    ich weis wirklich nicht was ich falsch mache....

    du bedienst den debugger nicht richtig.



  • mach dne ; weg und nimm std::string der ist zwar nicht gut, aber besser als char*



  • Ich hab ehrlich gesagt nicht den Eindruck, dass du weisst, was du tust. Was du beispielsweisee mit folgender Zeile bezweckst, entzieht sich meinem Verständnis...

    const_cast<char*>(path.c_str());
    

    schiksalsspiel schrieb:

    mach dne ; weg und nimm std::string der ist zwar nicht gut, aber besser als char*

    Wieso nicht gut? Für das meiste reicht std::string völlig. Und nur weil einige ihn als Designfehler bezeichnen, weil er eine zu viele Methoden besitzt, ist das kein Grund, ihn nicht zu benutzen.



  • vielen dank... das gieng aber ziemlich schnell... das mit dem ; habe ich glatt übersehen, aber jetzt gehts... danke

    InFaIN



  • Trotzdem solltest du den anderen Hinweisen in diesem Thread folgen, wenn du C++ programmieren willst. Und redundante Zeilen wie die von mir oben genannte zu entfernen wäre auch nicht die schlechteste Idee...



  • Nexus schrieb:

    schiksalsspiel schrieb:

    mach dne ; weg und nimm std::string der ist zwar nicht gut, aber besser als char*

    Wieso nicht gut? Für das meiste reicht std::string völlig. Und nur weil einige ihn als Designfehler bezeichnen, weil er eine zu viele Methoden besitzt, ist das kein Grund, ihn nicht zu benutzen.

    du verstehen text? nochmal genau lesen tuchen.[url]



  • Nexus schrieb:

    schiksalsspiel schrieb:

    mach dne ; weg und nimm std::string der ist zwar nicht gut, aber besser als char*

    Wieso nicht gut? [...]

    Ich wüsste nicht, was es da noch gross zu interpretieren gäbe.


  • Administrator

    Nexus schrieb:

    Ich wüsste nicht, was es da noch gross zu interpretieren gäbe.

    Ich verändere mal die Hervorhebung:

    Nexus schrieb:

    Wieso nicht gut? Für das meiste reicht std::string völlig. Und nur weil einige ihn als Designfehler bezeichnen, weil er eine zu viele Methoden besitzt, ist das kein Grund**, ihn nicht zu benutzen.**

    schiksalsspiel hat nie gesagt, dass man ihn nicht benutzen soll. Er hat gesagt, man soll std::string benutzen, obwohl die Klasse zwar nicht all zu gut ist, aber noch deutlich besser als char* .
    Deswegen ist er womöglich ein wenig verärgert über deine Aussage. 🙂

    Grüssli



  • Ja okay. 😉
    Naja, ich dachte halt, wenn man std::string schlecht findet, wird man sich langfristig wahrscheinlich eine Alternative suchen...

    Aber egal, wir müssen ja nicht über jedes kleine Detail eine Diskussion starten. :p



  • und warum ist sie nicht gut? ist sie nicht rosa genug? oder ist sie nicht mehr geek genug? zu primitv oder zu komplex?


  • Administrator

    5z54u4 schrieb:

    und warum ist sie nicht gut? ist sie nicht rosa genug? oder ist sie nicht mehr geek genug? zu primitv oder zu komplex?

    Ne, das Design ist falsch aufgebaut. Zu viele Methoden, nicht flexibel genug. Wurde schon oft in diesem Forum besprochen (Forumsuche) und gibt auch Artikel darüber (Inet-Suchmaschine).

    Grüssli


Anmelden zum Antworten