🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #618

Re: Hilfe: Kommandozeilenparameter

#618
From: Dirk Bernhardt
Date: Tue, 17 Oct 1995 09:33
39 lines
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!krid
References: <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