Argc og Argv C++

Argc Og Argv C



Mens vi skriver C++-programmer, ved vi alle, at 'main()'-funktionen anses for meget vigtig, da vi ikke kan kompilere vores program, hvis implementeringen af ​​denne funktion mangler. Ligesom alle andre funktioner i C++ er funktionen 'main()' også i stand til at acceptere argumenter. Forskellen mellem at overføre argumenter til funktionen 'main()' fra at overføre argumenter til de andre funktioner er, at du skal sende argumenterne gennem kommandolinjen i det førstnævnte tilfælde. Det er sådan, fordi 'main()'-funktionen i sig selv er driverfunktionen, hvorfor ingen anden funktion er i stand til at kalde den og sende argumenter til den. I denne artikel vil vi diskutere de to parametre for 'main()'-funktionen, dvs. 'argc' og 'argv' i C++ i Ubuntu 20.04.

Hvad er Argc og Argv i C++ i Ubuntu 20.04?

Parameteren 'argc' refererer til argumentantal, hvorimod 'argv' refererer til et tegnarray, der indeholder alle de argumenter, der sendes til 'main()'-funktionen gennem kommandolinjen på tidspunktet for udførelse af et program i C++. Her skal du vide, at 'argc' altid viser argumentantal som '1' mere end det faktiske antal af de beståede argumenter. Dette skyldes, at navnet på objektfilen også tælles som et kommandolinjeargument. Du kan sende kommandolinjeargumenterne, der tilhører enhver datatype, til funktionen 'main()'. Alt du skal passe på er, at disse parametre er nævnt i prototypen af ​​din 'main()'-funktion, hvis du vil have adgang til dem inde i den. Funktionen 'main()' kan dog fungere perfekt uden disse to parametre. Dette vil blive diskuteret i det følgende afsnit af denne artikel, hvorefter vi går videre til brugen af ​​disse to parametre i C++ i Ubuntu 20.04.

Hovedfunktionen uden Argc og Argv i C++:

Først og fremmest vil vi gerne fortælle dig, at 'main()'-funktionen i C++ kan fungere perfekt selv uden at bruge parametrene 'argc' og 'argv'. Dette er afbildet i følgende C++-program:









Vi har en simpel 'main()' funktion i dette program uden nogen argumenter. Inden for denne 'main()'-funktion udskriver vi kun en prøvemeddelelse på terminalen.



Derefter kompilerede vi dette grundlæggende C++-program ved hjælp af kommandoen nævnt nedenfor:





$ g++ CommandLine.cpp –o CommandLine

Bagefter udførte vi dette program ved at køre følgende kommando:



$ . / Kommandolinje

Outputtet af dette simple C++-program er vist på billedet nedenfor:

Kørsel af et C++-program uden at sende nogen kommandolinjeargumenter:

Nu vil vi forsøge at implementere et C++-program, hvor 'main()'-funktionen er i stand til at acceptere parametrene 'argc' og 'argv', men vi vil ikke videregive disse argumenter til det, mens vi udfører dette program fra terminal. Det nævnte C++-program er vist i følgende billede:

I dette C++ program er vores 'main()' funktion i stand til at acceptere 'argc' og 'argv' parametre. Men da vi ikke havde til hensigt at videregive disse værdier til den i dette specifikke eksempel, har vi med vilje udlignet 'argc' til '0', så når vi forsøger at udskrive værdien, vil den ikke returnere nogen skraldværdi. Derefter har vi udskrevet værdien af ​​'argc' parameteren på terminalen. Derefter har vi brugt en 'for'-løkke til at udskrive alle kommandolinjeargumenterne på terminalen.

Vi har kompileret denne kode ved hjælp af kommandoen vist nedenfor:

$ g++ CommandLine.cpp –o CommandLine

Så, da vi ønskede at køre dette program, sendte vi ikke nogen kommandolinjeargumenter til det, som du kan se fra følgende kommando:

$ . / Kommandolinje

Fra outputtet af dette C++-program vist på billedet nedenfor, kan du se, at ingen kommandolinjeargumenter blev sendt til denne funktion, på grund af hvilke argumentantallet var '0', og ingen argumenter blev udskrevet på terminalen, fordi tegnarrayet ' argv” var også tom.

Kørsel af et C++-program med kommandolinjeargumenter af heltalstype:

Nu vil vi køre det samme C++-program ved at sende heltals-kommandolinjeargumenter til det. Men før vi gør det, vil vi ændre vores kode lidt som vist på følgende billede:

Den eneste ændring, vi har lavet til denne kode, er, at vi har fjernet linjen 'argc=0' fra den, fordi vi i dette eksempel ønsker at udskrive det faktiske antal kommandolinjeargumenter, der er sendt til dette program under kørsel. Resten af ​​koden er nøjagtig den samme som brugt i afsnittet ovenfor.

Vi kompilerede vores ændrede kode ved hjælp af kommandoen vist nedenfor:

$ g++ CommandLine.cpp –o CommandLine

Derefter brugte vi følgende kommandolinjeargumenter til at udføre denne kode:

$ . / Kommandolinje 1 to 3

Det betyder, at vi har sendt tre heltalstype kommandolinjeargumenter til dette C++-program, mens vi kører det, dvs. 1, 2 og 3.

Outputtet af dette modificerede program er vist på billedet nedenfor:

Det samlede antal argumenter, der returneres af dette C++-program, er '4', dvs. tre heltalsargumenter, som vi har bestået + navnet på objektfilen. Dette program udskrev også elementerne i 'argv'-tegnarrayet på terminalen, dvs. de faktiske heltalsargumenter, der blev sendt til dette program på tidspunktet for udførelse, sammen med programmets navn.

Kørsel af et C++-program med kommandolinjeargumenter af tegntype:

Nu ville vi se, om det samme C++-program fungerer fint, når vi forsøger at udføre det ved at sende kommandolinjeargumenter af karaktertype til det. Til det behøvede vi ikke at ændre det yderligere. Vi skulle kun udføre det med kommandolinjeargumenter af karaktertype som følger:

$ . / Kommandolinje a b c d e f

Det betyder, at vi har sendt kommandolinjeargumenter af seks tegn til dette C++-program, mens vi kører det, dvs. a, b, c, d, e og f.

Det output, der er produceret som et resultat af at sende karaktertype-kommandolinjeargumenter til det samme C++-program, er vist nedenfor:

Det samlede antal argumenter, der returneres af dette C++-program, er '7', dvs. argumenter på seks tegn, som vi har bestået + navnet på objektfilen. Dette program udskrev også elementerne i 'argv'-tegnarrayet på terminalen, dvs. de faktiske tegntype-argumenter, der blev sendt til dette program på tidspunktet for udførelse, sammen med programmets navn.

Konklusion:

Denne artikel var rettet mod diskussionen af ​​de to kommandolinjeargumenter, også kendt som parametrene for 'main()'-funktionen, dvs. 'argc' og 'argv'. Vi talte om betydningen af ​​disse to parametre ved at angive deres brug. Derefter delte vi et par eksempler med dig, der skildrede brugen af ​​'argc' og 'argv' i C++ i Ubuntu 20.04. Desuden præciserede vi også, at selv uden at bruge disse parametre kunne 'main()'-funktionen fungere perfekt. Derfor, når du har læst denne artikel, vil du forstå brugen af ​​'argc' og 'argv' meget klart i C++.