Wenn fertig, bitte Fenster schließen
Diese zweite Form der main(...)-Funktion besitzt innerhalb der runden Klammern noch zusätzliche Angaben. Solche Angaben innerhalb von Funktionsklammern werden auch als Parameter bezeichnet.
int main(int argn, char *argv[]) |
Mithilfe dieser Parameter können Sie einem Programmen beim Start zusätzliche Angaben mitgeben und diese dann innerhalb des Programms auswerten. Nehmen wir zum Beispiel einmal an, das Programm hat den Namen MYPROG.EXE und würde eine Datei mit Konfigurationsdaten benötigen. Der Name dieser Datei soll beim Start des Programms mit übergeben werden. Damit könnte ein Aufruf des Programms wie folgt aussehen:
myprog -c config.dat
Das Programm müsste nun irgendwie diese zusätzlichen Angaben -c conf.dat erhalten. Und genau diesen Zweck haben die Parameter argn und argv innerhalb der Klammer von main(...).
|
|
Der Parameter argn enthält die Anzahl der eingegebenen Wörter beim Programmstart, einschließlich des Programmnamens. Unter Wörter werden hier beliebige Eingaben verstanden, die durch ein Leerzeichen voneinander getrennt sind. Auf die einzelnen Wörter kann über den Parameter argv zugegriffen werden. argv ist ein Feld von char-Zeigern, wobei der letzte Eintrag im Feld immer einen Zeiger mit dem Wert '0' enthält. Zu Zeigern und Felder kommen wir später noch. Nur so viel vorab: um auf ein bestimmtes Element in einem Feld zuzugreifen, geben Sie zuerst den Feldnamen an (hier also argv) und dann in eckigen Klammern den Index des gewünschten Elements. Die Parameter von main(...) würde damit bei obigem Aufruf folgende Werte besitzen:
| Parameter | Inhalt | Bemerkung |
| argn | 3 | als Zahl |
| argv[0] | "myprog" | als Zeiger auf den Text |
| argv[1] | "-c" | als Zeiger auf den Text |
| argv[2] | "config.dat" | als Zeiger auf den Text |
| argv[3] | 0 | als Zahl |
Anzumerken sei an dieser Stelle noch, dass die Inhalte von argv[] lt. C++ Standard nicht vorgeschrieben sind. Vielmehr sagt der C++ Standard prinzipiell nur aus, dass mithilfe von argv[] implementierungsabhängige Werte an das Programm übergeben werden können um dieses mit Informationen aus seiner Umgebung versorgen zu können.
In der Regel aber enthält das Element argv[0] aber den Namen des Programms selbst. Der C++ Standard verlangt nur, dass hier der Name steht, mit dem das Programm aufgerufen wurde, und dies ist fast immer der Programmname.
|
Starten Sie VC++ IDE und erstellen Sie ein neues Projekt mit dem Namen mainpar. Fügen Sie dem Projekt eine leere Quellcode-Datei hinzu und geben das folgenden Programm ein:
Übersetzen Sie zunächst das Programm. Anschließend öffnen Sie ein Konsolenfenster und wechseln in das Verzeichnis, in dem die ausführbare Datei (exe-Datei) liegt. Starten Sie das Programm und geben sie ihm beim Start noch zusätzliche Parameter mit, so wie im Beispiel aufgeführt.
Wie Sie der Programmausgabe entnehmen können, werden Parameter durch Leerzeichen getrennt. Soll ein Parameter auch Leerzeichen enthalten, so ist der Parameter in Anführungszeichen zu setzen. |
Wenn Sie genug ausprobiert haben, schließen Sie dieses Fenster und kehren zum Kurs zurück.