Argc in Argv C++

Argc In Argv C



Med pisanjem programov C++ vsi vemo, da je funkcija »main()« zelo pomembna, saj ne moremo prevesti našega programa, če manjka implementacija te funkcije. Tako kot vse druge funkcije v C++ lahko tudi funkcija »main()« sprejema argumente. Vendar pa je razlika med posredovanjem argumentov funkciji »main()« in posredovanjem argumentov drugim funkcijam v tem, da morate v prvem primeru posredovati argumente skozi ukazno vrstico. To je tako, ker je sama funkcija »main()« gonilna funkcija, zato je nobena druga funkcija ne more poklicati in ji posredovati argumentov. V tem članku bomo razpravljali o dveh parametrih funkcije »main()«, tj. »argc« in »argv« v C++ v Ubuntu 20.04.

Kaj je Argc in Argv v C++ v Ubuntu 20.04?

Parameter »argc« se nanaša na število argumentov, medtem ko se »argv« nanaša na niz znakov, ki vsebuje vse argumente, ki so posredovani funkciji »main()« prek ukazne vrstice v času izvajanja programa v C++. Tukaj morate vedeti, da 'argc' vedno prikaže število argumentov kot '1' več kot dejansko število posredovanih argumentov. To je zato, ker se ime objektne datoteke prav tako šteje kot argument ukazne vrstice. Argumente ukazne vrstice, ki pripadajo kateremu koli podatkovnemu tipu, lahko posredujete funkciji »main()«. Vse, na kar morate poskrbeti, je, da so ti parametri omenjeni v prototipu vaše funkcije »main()«, če želite dostopati do njih znotraj nje. Vendar lahko funkcija »main()« popolnoma dobro deluje tudi brez teh dveh parametrov. O tem bomo razpravljali v naslednjem razdelku tega članka, nato pa bomo nadaljevali z uporabo teh dveh parametrov v C++ v Ubuntu 20.04.

Glavna funkcija brez Argc in Argv v C++:

Najprej bi vam radi povedali, da lahko funkcija “main()” v C++ popolnoma dobro deluje tudi brez uporabe parametrov “argc” in “argv”. To je prikazano v naslednjem programu C++:









V tem programu imamo preprosto funkcijo »main()« brez argumentov. Znotraj te funkcije »main()« natisnemo samo vzorčno sporočilo na terminalu.



Nato smo s pomočjo spodaj omenjenega ukaza prevedli ta osnovni program C++:





$ g++ CommandLine.cpp –o CommandLine

Nato smo ta program izvedli z zagonom naslednjega ukaza:



$ . / Ukazna vrstica

Rezultat tega preprostega programa C++ je prikazan na spodnji sliki:

Zagon programa C++ brez posredovanja argumentov ukazne vrstice:

Zdaj bomo poskušali implementirati program C++, v katerem je funkcija »main()« sposobna sprejeti parametra »argc« in »argv«, vendar ji teh argumentov ne bomo posredovali med izvajanjem tega programa iz terminal. Omenjeni program C++ je prikazan na naslednji sliki:

V tem programu C++ lahko naša funkcija »main()« sprejme parametre »argc« in »argv«. Ker pa mu v tem posebnem primeru nismo nameravali posredovati teh vrednosti, smo namenoma izenačili »argc« na »0«, tako da, ko poskušamo natisniti njegovo vrednost, ne bo vrnil nobene smeti. Po tem smo na terminalu natisnili vrednost parametra 'argc'. Nato smo uporabili zanko »za« za tiskanje vseh argumentov ukazne vrstice na terminalu.

To kodo smo sestavili s spodaj prikazanim ukazom:

$ g++ CommandLine.cpp –o CommandLine

Potem, ko smo želeli zagnati ta program, mu nismo posredovali nobenih argumentov ukazne vrstice, kot lahko vidite iz naslednjega ukaza:

$ . / Ukazna vrstica

Iz izhoda tega programa C++, prikazanega na spodnji sliki, lahko vidite, da tej funkciji niso bili posredovani nobeni argumenti ukazne vrstice, zaradi česar je bilo število argumentov »0«, in noben argument ni bil natisnjen na terminalu, ker niz znakov ' argv« je bil tudi prazen.

Zagon programa C++ z argumenti ukazne vrstice tipa Integer:

Zdaj želimo zagnati isti program C++ tako, da mu posredujemo argumente ukazne vrstice tipa integer. Preden pa to storimo, bomo nekoliko spremenili kodo, kot je prikazano na naslednji sliki:

Edina sprememba, ki smo jo naredili v tej kodi, je, da smo iz nje odstranili vrstico »argc=0«, ker želimo v tem primeru natisniti dejansko število argumentov ukazne vrstice, posredovanih temu programu med izvajanjem. Preostali del kode je popolnoma enak kot v zgornjem razdelku.

Našo spremenjeno kodo smo znova prevedli z ukazom, prikazanim spodaj:

$ g++ CommandLine.cpp –o CommandLine

Nato smo za izvajanje te kode uporabili naslednje argumente ukazne vrstice:

$ . / Ukazna vrstica 1 dva 3

To pomeni, da smo temu programu C++ med izvajanjem posredovali tri argumente ukazne vrstice celega tipa, tj. 1, 2 in 3.

Rezultat tega spremenjenega programa je prikazan na spodnji sliki:

Skupno število argumentov, ki jih vrne ta program C++, je »4«, tj. trije celi argumenti, ki smo jih posredovali + ime objektne datoteke. Ta program je na terminalu tudi natisnil elemente niza znakov »argv«, tj. dejanske argumente celega tipa, ki so bili posredovani temu programu v času izvajanja, skupaj z imenom programa.

Zagon programa C++ z argumenti ukazne vrstice vrste znakov:

Zdaj smo želeli videti, ali isti program C++ deluje dobro, ko ga poskušamo izvesti tako, da mu posredujemo argumente ukazne vrstice znakovnega tipa. Za to nam ga ni bilo treba dodatno spreminjati. Izvesti smo ga morali samo z argumenti ukazne vrstice znakovnega tipa, kot sledi:

$ . / Ukazna vrstica a b c d e f

To pomeni, da smo temu programu C++ med izvajanjem posredovali argumente ukazne vrstice s šestimi znaki, tj. a, b, c, d, e in f.

Izhod, ustvarjen kot rezultat posredovanja argumentov ukazne vrstice znakovnega tipa istemu programu C++, je prikazan spodaj:

Skupno število argumentov, ki jih vrne ta program C++, je '7', tj. šestmestni argumenti, ki smo jih posredovali + ime objektne datoteke. Ta program je na terminalu tudi natisnil elemente niza znakov »argv«, tj. dejanske argumente vrste znakov, ki so bili posredovani temu programu v času izvajanja, skupaj z imenom programa.

Zaključek:

Ta članek je bil namenjen razpravi o dveh argumentih ukazne vrstice, znanih tudi kot parametri funkcije »main()«, tj. »argc« in »argv«. O pomenu teh dveh parametrov smo govorili z navedbo njune uporabe. Nato smo z vami delili nekaj primerov, ki prikazujejo uporabo »argc« in »argv« v C++ v Ubuntu 20.04. Poleg tega smo tudi pojasnili, da lahko tudi brez uporabe teh parametrov funkcija »main()« deluje popolnoma dobro. Ko boste torej prebrali ta članek, boste zelo jasno razumeli uporabo 'argc' in 'argv' v C++.