Programmieren - alles kontrollieren 4.939 Themen, 20.672 Beiträge

Problem mit Kommandozeilenparametern in C

SeeksTheMoon / 3 Antworten / Flachansicht Nickles

Moin Leute!
Ich habe ein kleines Problem mit Kommandozeilenparametern in C.
Warum klappt folgendes Konstrukt nicht?
Dabei soll per Kommandozeilenparameter -nologo übergeben werden, damit
in den else Zweig gesprungen wird. Man kann jedoch eingeben was man will, das Programm setzt immer nologo auf 1, obwohl das ja bei -nologo nicht passieren sollte.
Der Fehler ist garantiert trivial, aber ich finde ihn einfach nicht.
Danke im Voraus.

void main(int anzahl,char**parameter)
{
int nologo=0;

if (parameter[1]==-nologo)
nologo=1;
else
.....blablabla
}

bei Antwort benachrichtigen
(Anonym) SeeksTheMoon „Problem mit Kommandozeilenparametern in C“
Optionen

der übersetzt das? glaub ich nicht!

parameter[1]==-nologo

da sitzt der wurm. Eigentlich müsste er irgendwas wie "-nologo kenn ich nicht" schreien.

lösung:
#include

void main(int anzahl,char**parameter)
{
char* cNoLogo = "-nologo"

if (strcmp(cNoLogo, parameter[1]))
{
// parameter[1] war nicht -nologo
}
else
{
// parameter[1] war -nologo
}

}

Fehlerursache:

== vergleicht nur ob die ADRESSEN identisch sind. Und das sind sie nicht.

bei Antwort benachrichtigen