Argc und Argv C++

Argc Und Argv C



Beim Schreiben von C++-Programmen wissen wir alle, dass die Funktion „main()“ als sehr wichtig angesehen wird, da wir unser Programm nicht kompilieren können, wenn die Implementierung dieser Funktion fehlt. Wie alle anderen Funktionen in C++ ist auch die Funktion „main()“ in der Lage, Argumente entgegenzunehmen. Der Unterschied zwischen der Übergabe von Argumenten an die „main()“-Funktion und der Übergabe von Argumenten an die anderen Funktionen besteht jedoch darin, dass Sie die Argumente im ersten Fall über die Befehlszeile übergeben müssen. Dies liegt daran, dass die „main()“-Funktion selbst die Treiberfunktion ist, weshalb keine andere Funktion in der Lage ist, sie aufzurufen und ihr Argumente zu übergeben. In diesem Artikel werden wir die beiden Parameter der „main()“-Funktion besprechen, d. h. „argc“ und „argv“ in C++ in Ubuntu 20.04.

Was sind Argc und Argv in C++ in Ubuntu 20.04?

Der Parameter „argc“ bezieht sich auf die Anzahl der Argumente, während „argv“ sich auf ein Zeichenarray bezieht, das alle Argumente enthält, die zum Zeitpunkt der Ausführung eines Programms in C++ über die Befehlszeile an die Funktion „main()“ übergeben werden. Hier müssen Sie wissen, dass „argc“ die Anzahl der Argumente immer um „1“ mehr anzeigt als die tatsächliche Anzahl der übergebenen Argumente. Dies liegt daran, dass der Name der Objektdatei auch als Befehlszeilenargument gezählt wird. Sie können die zu jedem Datentyp gehörenden Kommandozeilenargumente an die Funktion „main()“ übergeben. Sie müssen lediglich darauf achten, dass diese Parameter im Prototyp Ihrer „main()“-Funktion erwähnt werden, wenn Sie darin darauf zugreifen möchten. Die Funktion „main()“ kann jedoch auch ohne diese beiden Parameter sehr gut funktionieren. Dies wird im folgenden Abschnitt dieses Artikels besprochen, wonach wir mit der Verwendung dieser beiden Parameter in C++ in Ubuntu 20.04 fortfahren.

Die Hauptfunktion ohne Argc und Argv in C++:

Zunächst möchten wir Ihnen mitteilen, dass die Funktion „main()“ in C++ auch ohne Verwendung der Parameter „argc“ und „argv“ einwandfrei funktionieren kann. Dies wird im folgenden C++-Programm dargestellt:









Wir haben in diesem Programm eine einfache „main()“-Funktion ohne Argumente. Innerhalb dieser „main()“-Funktion geben wir nur eine Beispielnachricht auf dem Terminal aus.



Dann haben wir dieses grundlegende C++-Programm mit Hilfe des unten genannten Befehls kompiliert:





$ g++ Befehlszeile.cpp –o Befehlszeile

Danach haben wir dieses Programm ausgeführt, indem wir den folgenden Befehl ausgeführt haben:



$ . / Befehlszeile

Die Ausgabe dieses einfachen C++-Programms ist im folgenden Bild dargestellt:

Ausführen eines C++-Programms ohne Übergabe von Befehlszeilenargumenten:

Jetzt werden wir versuchen, ein C++-Programm zu implementieren, in dem die Funktion „main()“ die Parameter „argc“ und „argv“ akzeptieren kann, aber wir werden diese Argumente nicht an sie übergeben, während wir dieses Programm von der ausführen Terminal. Das besagte C++-Programm ist im folgenden Bild dargestellt:

In diesem C++-Programm ist unsere „main()“-Funktion in der Lage, „argc“- und „argv“-Parameter zu akzeptieren. Da wir in diesem speziellen Beispiel jedoch nicht beabsichtigten, diese Werte an ihn zu übergeben, haben wir „argc“ absichtlich auf „0“ gesetzt, sodass beim Versuch, seinen Wert auszugeben, kein Müllwert zurückgegeben wird. Danach haben wir den Wert des Parameters „argc“ auf dem Terminal ausgegeben. Dann haben wir eine „for“-Schleife verwendet, um alle Befehlszeilenargumente auf dem Terminal auszugeben.

Wir haben diesen Code mit dem unten gezeigten Befehl kompiliert:

$ g++ Befehlszeile.cpp –o Befehlszeile

Als wir dieses Programm dann ausführen wollten, haben wir ihm keine Befehlszeilenargumente übergeben, wie Sie dem folgenden Befehl entnehmen können:

$ . / Befehlszeile

Aus der Ausgabe dieses C++-Programms, das im Bild unten gezeigt wird, können Sie sehen, dass keine Befehlszeilenargumente an diese Funktion übergeben wurden, weshalb die Argumentanzahl „0“ war, und keine Argumente auf dem Terminal ausgegeben wurden, weil das Zeichenarray „ argv“ war ebenfalls leer.

Ausführen eines C++-Programms mit ganzzahligen Befehlszeilenargumenten:

Jetzt wollen wir dasselbe C++-Programm ausführen, indem wir ihm Befehlszeilenargumente vom Typ Integer übergeben. Zuvor werden wir unseren Code jedoch leicht ändern, wie in der folgenden Abbildung gezeigt:

Die einzige Änderung, die wir an diesem Code vorgenommen haben, besteht darin, dass wir die Zeile „argc=0“ daraus entfernt haben, da wir in diesem Beispiel die tatsächliche Anzahl der Befehlszeilenargumente ausgeben möchten, die zur Laufzeit an dieses Programm übergeben werden. Der Rest des Codes ist genau derselbe wie im obigen Abschnitt.

Wir haben unseren modifizierten Code mit dem unten gezeigten Befehl neu kompiliert:

$ g++ Befehlszeile.cpp –o Befehlszeile

Dann haben wir zum Ausführen dieses Codes die folgenden Befehlszeilenargumente verwendet:

$ . / Befehlszeile 1 zwei 3

Das bedeutet, dass wir drei Befehlszeilenargumente vom Typ Integer an dieses C++-Programm übergeben haben, während es ausgeführt wird, d. h. 1, 2 und 3.

Die Ausgabe dieses modifizierten Programms ist im folgenden Bild dargestellt:

Die Gesamtzahl der von diesem C++-Programm zurückgegebenen Argumente ist „4“, d. h. drei ganzzahlige Argumente, die wir übergeben haben, + der Name der Objektdatei. Dieses Programm gab auch die Elemente des Zeichenarrays „argv“ auf dem Terminal aus, d. h. die tatsächlichen Argumente vom Typ Integer, die diesem Programm zum Zeitpunkt der Ausführung übergeben wurden, zusammen mit dem Namen des Programms.

Ausführen eines C++-Programms mit Zeichentyp-Befehlszeilenargumenten:

Nun wollten wir sehen, ob das gleiche C++-Programm gut funktioniert, wenn wir versuchen, es auszuführen, indem wir zeichenartige Befehlszeilenargumente an es übergeben. Dafür mussten wir es nicht weiter modifizieren. Wir mussten es nur mit zeichenartigen Befehlszeilenargumenten wie folgt ausführen:

$ . / Befehlszeile a b c d e f

Das bedeutet, dass wir Befehlszeilenargumente vom Typ sechs Zeichen an dieses C++-Programm übergeben haben, während es ausgeführt wird, d. h. a, b, c, d, e und f.

Die Ausgabe, die als Ergebnis der Übergabe von Zeichentyp-Befehlszeilenargumenten an dasselbe C++-Programm erzeugt wird, ist unten dargestellt:

Die Gesamtzahl der von diesem C++-Programm zurückgegebenen Argumente ist „7“, d. h. sechsstellige Argumente, die wir übergeben haben, + der Name der Objektdatei. Dieses Programm gab auch die Elemente des Zeichenarrays „argv“ auf dem Terminal aus, d. h. die eigentlichen Zeichentypargumente, die diesem Programm zum Zeitpunkt der Ausführung übergeben wurden, zusammen mit dem Namen des Programms.

Fazit:

Dieser Artikel zielte auf die Diskussion der beiden Kommandozeilenargumente ab, die auch als Parameter der Funktion „main()“ bekannt sind, also „argc“ und „argv“. Wir haben über die Bedeutung dieser beiden Parameter gesprochen, indem wir ihre Verwendung angegeben haben. Dann haben wir einige Beispiele mit Ihnen geteilt, die die Verwendung von „argc“ und „argv“ in C++ in Ubuntu 20.04 veranschaulichen. Darüber hinaus haben wir auch klargestellt, dass die Funktion „main()“ auch ohne Verwendung dieser Parameter einwandfrei funktionieren könnte. Daher werden Sie nach dem Lesen dieses Artikels die Verwendung von „argc“ und „argv“ in C++ sehr klar verstehen.