[c/c++] kommandozeilen argumente - argc, argv

Post Reply
Message
Author
max18

[c/c++] kommandozeilen argumente - argc, argv

#1 Post by max18 »

hallo, ich bin dabei ein paar experimente mit kommandozeilenargumente in c bzw.
eigentlich in c++ zu machen. ich habe grundsätzlich verstanden das ich mit

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2"> int main(int argc, char *argv[])</font><hr></pre></blockquote>

bsp. in argc steht wieviele Argumente (0 = programmname) und im argv-Array
steht welche. mir ist auch klar, wie ich herausfinde ob argumente angegeben wurden und wie ich diese ausgebe. bsp:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2"> int main(int argc, char *argv[])</font><hr></pre></blockquote>

ich möchte nun das man mein programm mit mehreren argumenten starten kann. bsp:
-t (today), -y (yesterday) --help (gib hilfe-usage aus). nur weiß ich jetzt
nicht, wie ich erfahren kann das "-t" oder "--help" angegeben wurde. und wie
kriege ich die argumente die angegeben wurden in eine entsprechende variable
(bsp. -t -> char t_parameter)?

bin irgendwie noch ein bisschen verwirrt...

bin für hinweise (müssen wirklich keine konkrete lösungen, sondern auch nur tipps sein) wirklich dankbar!

max18

Re: [c/c++] kommandozeilen argumente - argc, argv

#2 Post by max18 »

:(

da wurde irgendwie mein zweiter codeschnipsel verworfen, sollte eigentlich:

{
int argv_cnt_; // counter um argumente auszugeben
if (argc > 1)
cout << "Aufruf erfolgte mit den Parametern:" << endl;
else
cout << "Aufruf erfolgte ohne Parameter!" << endl;
for(argv_cnt_=1; argv_cnt_ < argc; argv_cnt_++)
cout << argv[argv_cnt_] << endl;
return(0);
}

und nicht nochmal die int main anweisung sein! :(

Jochen

Re: [c/c++] kommandozeilen argumente - argc, argv

#3 Post by Jochen »

Da gibt es die Bibliotheksfunktion getopt; "man 3 getopt" sollte Dir weiterhelfen.

Jochen

max18

Re: [c/c++] kommandozeilen argumente - argc, argv

#4 Post by max18 »

nochmal dir vielen dank! bin grade am ausprobieren! :)

Post Reply