Komandozeilenparameter auswerten?

Diefenbaker

Mitglied
Hallo,

ich habe das Problem das ich die Komandozeilenparameter mir zwar ausgeben aber nicht auswerten lassen kann.

folgendes Prog.:
Code:
int main(int argc, char* argv[]){
int i;
for (i=0; i<argc; i++){
printf("Argument #%d: -",i); printf(argv[i]); printf("-\n");

if (argv[0]=="dateiname"){printf("richtiger Dateiname!\n");}

return 0;
}

egal wie die Datei heist. Der Name ist nie richtig.

die argv[] sind doch vom typ char, oder?

was mache ich falsch?
 
moin


Code:
if (argv[0]=="dateiname")

Geht nicht!

Um Strings zu vergleichen benutzt man strcmp().


mfg
umbrasaxum
 
Hallo,

zusatzinfo zu strcmp ( falls dus nicht weist Diefenbaker )

du musst so testen if( 0 == strcmp(str1,str2) )
 
Vergleichst du wirklich
argv[0] mit dem String "Dateiname"
oder wird für Dateiname der Programmname eingesetzt?

Wenn ja dann musst du Rücksicht nehmen, dass argv[0] der ganze Pfad ist (inkl. aller Ordner in denen das Programm steckt und auf die Endung (*.exe) achten)
 
cool funktioniert!
hab es jetzt mit: if( 0 == strcmp(argv[0],"dateiname") ) gelöst.

@colt4ever: als argv[0] gibt er übrigens nur den eingegebenen Dateinamen zurück. habs mir mal printf()'en lassen. .. aber viell. ist das eine besonderheit von VC++.
 
Zurück