Parameter an Hauptprogramm funktioniert nicht
-
Hallo,
ich wollte eigentlich zu Testzwecken ein kleines Programm schreiben das bei aufruf von
programm.exe -?
ein Text ausgibt. Alles was ich kriege ist nichts warum?
Hier der Code.
#include <stdlib.h> #include <stdio.h> void main ( int argc , char *argv[] ) { int i; /* Wenn mindestens ein Parameter angegeben wurde alle durchtesten */ if (argc > 1) { for (i = 1; i < argc; i++) { if (argv[i] == "-?") { printf ("Test"); } } } else { /* wenn kein Aufruf Parameter angegeben wurde, Programm ausführen */ printf ("\n\nProgramm wurde ohne -? aufgerufen\n\n" ); } }
-
Das Problem ist, daß du Zeichenketten nicht so einfach mit == vergleichen kannst (== vergleicht Pointer, in deinem Fall ein Zeiger auf den übergebenen Parameter und ein Zeiger auf ein Literal). Zum Vergleich des String-Inhaltes solltest du folgendes verwenden:
if(strcmp(argv[i],"-?")==0) printf("Test");
-
Oh,
stimmt ja! Sorry aber total außer Betracht gezogen! Danke!