5 - Beispiel [ID:31490]
50 von 59 angezeigt

Das Hamburger

bekommt, auf der Komando-Zeile wieder ausgibt. Dabei soll jedes Argument aber in

einer eigenen Zeile stehen. Ich kann kurz den Befehl echo demonstrieren, in dem

ich einfach tippe echo Hallo Welt und als Ausgabe des Programms echo sehen wir

das, was wir als Argument übergeben haben. Das Verhalten, das wir jetzt an der

Stelle aber haben wollen, ist, dass jedes Argument, also einmal hallo einmal Welt,

in jener eigenen Zeile stehen. Wenn ich so einen Programm implementieren möchte,

beginne ich zunächst mit der Main-Funktion. Das heißt, ich öffne

eine Quertex-Dateiти wie zum Beispiel l-echo nenne.

Und fang an die Main Funktion zu implementieren.

Die Signatur der Main sieht vor, dass sie als Rückgabewert ein Integer hat und dass sie zwei Argumente erwartet.

Zum einen ein Integer, der angibt mit wieviel Argumenten das Programm aufgerufen wurde

und ein Array von Zeigern, das auf die einzelnen Parameter verweist.

Die Besonderheit an der Stelle ist, dass an der Stelle 0 des AkvArrays immer der Name

des auszuführenden Programmes steht.

Darauf kann ich zugreifen, indem ich Akv an der Stelle 0 referenziere.

Wenn ich etwas auf der Kommandozeile ausgeben möchte, kann ich das zum Beispiel mit der

Puts-Funktion machen.

Dazu öffne ich mal die Monpage.

Hier steht die Puts-Funktion beschrieben.

Sie erwartet als Argument ein String namens s und hat einen integer als Rückgabewert.

Wenn ich näheres zu der Funktion puts wissen möchte, scrollen wir einfach runter und

kann nachlesen, was puts macht.

Hier steht, dass puts den übergebenen String s ausgibt und am Ende eine neue Zeile schreibt.

Und dies geschieht auf der Standardausgabe.

Und das klingt ungefähr nach dem, was wir für diese Aufgabe brauchen.

Das bedeutet, ich kann hier einfach schreiben puts und übergebe als Argument den String

akv an der Stelle 0.

Das Problem ist jetzt, dass die Funktion puts noch nicht bekannt ist.

Das heißt, ich muss die entsprechende Header-Datei inkludieren.

Dazu kann ich ebenfalls auf der Monpage nachschlagen und sehe ganz oben unter Synopsis, dass ich

dazu die Header-Datei stdio inkludieren muss.

Jetzt kann ich erstmal prüfen, ob das, was ich bisher geschrieben habe, funktioniert.

Dazu kompiliere ich das Programm und führe es aus.

Und tatsächlich ist die Ausgabe jetzt das, was ich erwartet habe, nämlich der Name des

Programms.

Wenn ich aber weitere Argumente angebe, geschieht nichts damit.

Das wollen wir jetzt ändern, indem wir anstelle des eigenen Namens die weiteren Argumente ausgeben.

Dies kann ich am besten tun, indem ich in einer Schleife über die restlichen Argumente

etablieren.

Jetzt prüfe ich das Ganze, indem ich es wieder kompiliere und erneut ausführe.

Und jetzt ist die Ausgabe tatsächlich so, wie man sie fast erwartet.

Aktuell wird zweimal der Name des eigenen Programms ausgegeben, gefolgt von den weiteren Argumenten.

Ich lösche nun das erste Puts, was zur Folge hat, dass nach der erneuten Kompilierung und

Ausführung nur noch einmal der Name des Programms steht und die weiteren Argumente.

Wenn ich nun den Namen des Programms ganz weglassen möchte, dann muss ich in der Vorschläge

dafür sorgen, dass die erste Stelle in dem Array nicht betrachtet wird.

Dies kann ich machen, indem ich den initialen Index von 0 auf 1 setze.

Jetzt ist die Ausgabe so, wie gefordert.

Zum Abschluss sollte ich noch prüfen, ob ich mich an alle Konventionen gehalten habe.

Teil einer Videoserie :
Teil eines Kapitels:
Dynamische Speicherverwaltung

Zugänglich über

Offener Zugang

Dauer

00:05:34 Min

Aufnahmedatum

2021-04-22

Hochgeladen am

2021-04-22 12:06:05

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen