Article View: de.comp.lang.c++
Article #618Re: Hilfe: Kommandozeilenparameter
From: Dirk Bernhardt
Date: Tue, 17 Oct 1995 09:33
Date: Tue, 17 Oct 1995 09:33
39 lines
1541 bytes
1541 bytes
Hallo Roman!
Am 16.10.95 meinte Roman@pussycat.ping.de:
> frage ich jedoch die Korrektheit des Passwortes mittels
> if ( argv[1] == "passwort")
> ab, so wird niemals ein true zurueckgeliefert...
> Was mache ich falsch?!
Du vergleichst zwar nicht Äpfel und Birnen, aber zwei Äpfel auf
verschiedenen Bäumen :)
Will sagen, Du vergleichst zwei Zeiger vom Typ char*, und das kann in
diesem Fall niemals true zurückliefern. argv[1] steht irgendwo im
Speicher, und "passwort" steht irgendwo anders im Speicher.
In C würde man Dein Problem wie folgt lösen:
#include <string.h>
/* ... */
if (strcmp(argv[1], "passwort") == NULL) {
/* richtiges Passwort eingegeben */
/* ... */
}
oder einfacher:
#include <string.h>
/* ... */
if (!strcmp(argv[1], "passwort")) {
/* richtiges Passwort eingegeben */
/* ... */
}
In C++ kann es möglicherweise andere Vorgehensweisen geben (ich kenne
mich da nicht so aus). Trotzdem ist das ein so elementares Beispiel,
daß ich Dir raten kann, ein gutes Buch über C/C++ zu lesen. :)
Ciao,
- Krid -
Technical Details
Message-ID:
<5w0NGiB3nXB@umrk.tng.oche.de>Path:
arc1-ca.pugleaf.net!umrk.tng.oche.de!kridReferences:
<5vyUWUQKjQB@pussycat.ping.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!umrk.tng.oche.de!krid Date: 17 Oct 1995 10:33:00 +0100 From: krid@umrk.tng.oche.de (Dirk Bernhardt) Newsgroups: de.comp.lang.c++ Message-ID: <5w0NGiB3nXB@umrk.tng.oche.de> References: <5vyUWUQKjQB@pussycat.ping.de> Subject: Re: Hilfe: Kommandozeilenparameter X-Newsreader: CrossPoint v3.1 R/A3517 MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Organization: Utility Muffin Research Kitchen