strcmp
-
achso, deswegen ist das Programm abgestürtz. Habe jetzt anstatt
if (strcmp(argv[i], "--version")), if (strcmp(argv[0], "--version")) hin geschrieben, also i mit 0 getauscht, aber wieso verstehe ich nicht so richtig ?
-
In dem Array sind die übergebenen Parameter enthalten, startend bei Index 1 (0 enthält den Dateinamen).
-
achso dankeschön, ich habe noch 2 weiter fragen. Undzwar kann man die version des compiler nicht irgendwie ausgeben. Also so ungefähr:
if (strcmp(argv[0], "--version") ) printf("getversion\n"); // getversion ist frei erfunden, aber gibt es nicht sowas ähnliches ? Oder sowas if (strcmp(argv[0], "--help") ) printf("gethelp\n"); // das wäre dann so ähnlich als ob ich in der windows console (cmd) help eingeben würde
-
Saido schrieb:
achso dankeschön, ich habe noch 2 weiter fragen. Undzwar kann man die version des compiler nicht irgendwie ausgeben. Also so ungefähr:
if (strcmp(argv[0], "--version") ) printf("getversion\n"); // getversion ist frei erfunden, aber gibt es nicht sowas ähnliches ? Oder sowas if (strcmp(argv[0], "--help") ) printf("gethelp\n"); // das wäre dann so ähnlich als ob ich in der windows console (cmd) help eingeben würde
Mit Makros geht das sicher, aber macht eigentlich keinen großen Sinn.
-
ok danke schön, aber ich habe noch eine frage wenn es geht
also mein programm läuft bis auf eine kleinigkeit, er gibt immer die version aus, obwohl ich eine if anweisung habe, die es nur erlaubt wenn mann --version eingibt. Hier nochmal das komplette ding:#include <stdio.h> #include <stdlib.h> #include <string.h> int main (int argc, char *argv[]) { int i; printf("Ninja Machine started\n"); i=0; while (i<argc) { printf("%s \n",argv[i]); i++; } if (strcmp(argv[0], "--version") ) { printf("version\n"); } else if (strcmp(argv[1], "--help") ) { printf("help\n"); } printf("%d parameters entered on the command line.\n",i); printf("Ninja Machine stoped\n"); return 0; }
-
Janjan schrieb:
In dem Array sind die übergebenen Parameter enthalten, startend bei Index 1 (0 enthält den Dateinamen).
-
verstehe das nicht so richtig, was muss ich verändern ?
-
Saido schrieb:
verstehe das nicht so richtig, was muss ich verändern ?
if (strcmp(argv[1], "--version") == 0) // argv[1] und nicht argv[0] { printf("version\n"); } else if (strcmp(argv[1], "--help") == 0) { printf("help\n"); }
-
Nochmal als Beispiel. Programmaufruf Test.exe Para1 Para2 Para3
argv[0] = "Test.exe"
argv[1] = "Para1"
argv[2] = "Para2"
argv[3] = "Para3"
-
Alles klar, vielen dank. Ihr habt mir echt geholfen!!!