Frage zu char *argv[] - Übergabe
-
Hallo ihr,
ich bin mir sicher, dass einer von euch mir weiterhelfen kann. Stehe voll auf dem Schlauch und verstehe gar nix mehr. Ich würde gerne von einer Kommandozeile mein Programm aufrufen und ihm gleich ein paar Dinge übergeben:
Eingabe in der Kommandozeile:TestProgramm i C:\Software\Testdatei.xyz o C:\Software\Test.xyz
Der Pfad nach 'i' bedeutet, welche Datei er öffnen soll und der Pfad nach dem 'o' bedeutet, als wo als was er es abspeichern soll. Sprich ich benötige den Pfad. Wenn ich mir jetzt die Elemente von argv[] ansehe, sehe ich, dass das 'i' eigentlich in argv[1] steht. Daher dachte ich, es wäre möglich es so abzufragen:
if(argv[1] == "i") { openPath = argv[2]; savePath = argv[4]; }
aber so findet er keins!
nur mit der Abfrage:
if(argv[1][0] == 'i') { openPath = argv[2]; savePath = argv[4]; }
kann mir jemand erklären warum er mit der ersten Möglichkeit das 'i' nicht findet?
Danke!
-
Kitty82 schrieb:
kann mir jemand erklären warum er mit der ersten Möglichkeit das 'i' nicht findet?
Danke!
if (char == 'x') macht nen char vergleich. Das geht wie du siehst. Oben willst du einen Stringvergleich machen. Das geht meines Wissens nach (so wie du es machen willst) mit einem Stringvergleich und der geht (z.B.) so:
if (strcmp(argv[1], "all"))
-
Versuch's mit
if (strcmp(argv[1], "i") == 0)
-
finix schrieb:
Versuch's mit
if (strcmp(argv[1], "i") == 0)
das klappt!! warum bin ich nicht selber darauf gekommen ... oh da fängt der Montag ja klasse an
danke nochmals