Lektion 7 - Programmparameter und Dateien
Programmparameter
Bisher haben wir unsere main
immer wie folgt deklariert:
int main();
Tatsächlich ist die main
ein Spezialfall, da man diese ohne Parameter aufrufen kann, obwohl die tatsächliche Signatur eigentlich wäre
int main(int argc, char** argv);
(eine weitere Ausnahme bei der main
ist auch, dass diese nicht unbedingt einen Wert zurückgeben muss)
Mit diesen Parametern können wir auf Argumente zugreifen, die beim Programmaufruf mitgegeben wurden. Dabei ist argc
die Anzahl an Argumenten (inklusive Programmname) und argv
ein Array von Strings (deswegen der doppelte Pointer)
Angenommen, wir rufen ein Programm so auf:
./hello Max
Dann wäre argc
2, argv[0]
./hello und argv[1]
Max.
Ein mögliches Programm, mit dem wir beliebige Nutzer begrüßen können, könnte dann so aussehen:
#include <stdio.h>
int main(int argc, char** argv) {
// handle wrong usage
if(argc != 2) {
printf("Wrong usage of %s.\n", argv[0]);
return;
}
printf("Hello %s!\n", argv[1]);
}
Dateien
Da unsere Programme im Arbeitsspeicher ausgeführt werden, haben wir bisher keine Möglichkeit, unsere Daten, Ergebnisse oder was auch immer unser Programm bearbeiten könnte, irgendwie permanent zu Speicher.
stdio.h liefert uns Funktionen zum Umgang mit Dateien (die auf der Festplatte liegen, und somit persistent gespeichert werden). Es gibt viele solcher Funktionen, und du musst sie auf keinen Fall alle im Hinterkopf behalten. Für alles, was du brauchen könntest, wird es ein Stack-Overflow-Beispiel geben, was dir weiterhilft.
Falls du ein besseres Verständnis für den Umgang mit Dateien in C haben möchtest, könnte dies nützlich sein.
Praktische Übung: Dateien werden oft in Kombination mit Programmparametern verwendet, um unserem Programm Eingabedaten zu übergeben. Betrachte die Übung aus Lektion 4. Schreibe oder passe dein Programm so an, dass es seine Eingabedaten aus einer Eingabedatei mit beliebigem Namen erhält.