Argc og Argv C++

Argc Og Argv C



Mens vi skriver C++-programmer, vet vi alle at 'main()'-funksjonen anses som veldig viktig siden vi ikke kan kompilere programmet vårt hvis implementeringen av denne funksjonen mangler. Akkurat som alle andre funksjoner i C++, er 'main()'-funksjonen også i stand til å akseptere argumenter. Forskjellen mellom å sende argumenter til 'main()'-funksjonen fra å sende argumenter til de andre funksjonene er at du må sende argumentene gjennom kommandolinjen i det førstnevnte tilfellet. Det er slik fordi 'main()'-funksjonen i seg selv er driverfunksjonen, og det er derfor ingen annen funksjon er i stand til å kalle den og sende argumenter til den. I denne artikkelen vil vi diskutere de to parameterne til 'main()'-funksjonen, dvs. 'argc' og 'argv' i C++ i Ubuntu 20.04.

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

Parameteren 'argc' refererer til argumenttellingen, mens 'argv' refererer til en tegnarray som inneholder alle argumentene som sendes til 'main()'-funksjonen gjennom kommandolinjen på tidspunktet for kjøring av et program i C++. Her må du vite at 'argc' alltid viser argumentantall som '1' mer enn det faktiske antallet beståtte argumenter. Dette er fordi navnet på objektfilen også regnes som et kommandolinjeargument. Du kan sende kommandolinjeargumentene som tilhører en hvilken som helst datatype til 'main()'-funksjonen. Alt du trenger å ta vare på er at disse parameterne er nevnt i prototypen til 'main()'-funksjonen din hvis du vil ha tilgang til dem inne i den. Imidlertid kan 'main()'-funksjonen fungere utmerket uten disse to parameterne. Dette vil bli diskutert i den følgende delen av denne artikkelen, hvoretter vi går videre til bruken av disse to parameterne i C++ i Ubuntu 20.04.

Hovedfunksjonen uten Argc og Argv i C++:

Først av alt vil vi fortelle deg at 'main()'-funksjonen i C++ kan fungere utmerket selv uten å bruke parameterne 'argc' og 'argv'. Dette er avbildet i følgende C++-program:









Vi har en enkel 'main()'-funksjon i dette programmet uten noen argumenter. Innenfor denne 'main()'-funksjonen skriver vi bare ut en eksempelmelding på terminalen.



Deretter kompilerte vi dette grunnleggende C++-programmet ved hjelp av kommandoen nevnt nedenfor:





$ g++ CommandLine.cpp –o CommandLine

Etterpå kjørte vi dette programmet ved å kjøre følgende kommando:



$ . / Kommandolinje

Utdataene til dette enkle C++-programmet er vist på bildet nedenfor:

Kjøre et C++-program uten å sende noen kommandolinjeargumenter:

Nå vil vi prøve å implementere et C++-program der 'main()'-funksjonen er i stand til å akseptere parameterne 'argc' og 'argv', men vi vil ikke sende disse argumentene til det mens vi kjører dette programmet fra terminal. Det nevnte C++-programmet vises i følgende bilde:

I dette C++-programmet er 'main()'-funksjonen vår i stand til å akseptere 'argc' og 'argv' parametere. Men siden vi ikke hadde til hensikt å overføre disse verdiene til den i dette spesielle eksemplet, har vi med vilje utjevnet 'argc' til '0', slik at når vi prøver å skrive ut verdien, vil den ikke returnere noen søppelverdi. Etter det har vi skrevet ut verdien av 'argc' -parameteren på terminalen. Deretter har vi brukt en 'for'-løkke for å skrive ut alle kommandolinjeargumentene på terminalen.

Vi har kompilert denne koden ved å bruke kommandoen vist nedenfor:

$ g++ CommandLine.cpp –o CommandLine

Da vi ønsket å kjøre dette programmet, sendte vi ingen kommandolinjeargumenter til det, som du kan se fra følgende kommando:

$ . / Kommandolinje

Fra utdataene fra dette C++-programmet vist i bildet nedenfor, kan du se at ingen kommandolinjeargumenter ble sendt til denne funksjonen på grunn av hvilke argumenttellingen var '0' og ingen argumenter ble skrevet ut på terminalen fordi tegnarrayen ' argv» var også tom.

Kjøre et C++-program med kommandolinjeargumenter av heltallstype:

Nå ønsker vi å kjøre det samme C++-programmet ved å sende heltallstype kommandolinjeargumenter til det. Men før vi gjør det, vil vi endre koden vår litt som vist i følgende bilde:

Den eneste endringen vi har gjort til denne koden er at vi har fjernet linjen 'argc=0' fra den fordi vi i dette eksemplet ønsker å skrive ut det faktiske antallet kommandolinjeargumenter som ble sendt til dette programmet under kjøring. Resten av koden er nøyaktig den samme som ble brukt i avsnittet ovenfor.

Vi kompilerte vår modifiserte kode på nytt ved å bruke kommandoen vist nedenfor:

$ g++ CommandLine.cpp –o CommandLine

Deretter, for å utføre denne koden, brukte vi følgende kommandolinjeargumenter:

$ . / Kommandolinje 1 to 3

Det betyr at vi har sendt tre heltallstype kommandolinjeargumenter til dette C++-programmet mens vi kjører det, dvs. 1, 2 og 3.

Utdataene fra dette modifiserte programmet er vist på bildet nedenfor:

Det totale antallet argumenter som returneres av dette C++-programmet er '4', dvs. tre heltallsargumenter som vi har sendt + navnet på objektfilen. Dette programmet skrev også ut elementene i 'argv'-tegnarrayen på terminalen, det vil si de faktiske heltallstype-argumentene som ble sendt til dette programmet på kjøringstidspunktet, sammen med navnet på programmet.

Kjøre et C++-program med kommandolinjeargumenter for tegntype:

Nå ønsket vi å se om det samme C++-programmet fungerer bra når vi prøver å kjøre det ved å sende kommandolinjeargumenter av tegntype til det. For det trengte vi ikke å endre den ytterligere. Vi måtte bare utføre det med kommandolinjeargumenter av karaktertype som følger:

$ . / Kommandolinje a b c d e f

Det betyr at vi har sendt kommandolinjeargumenter av seks tegn til dette C++-programmet mens vi kjører det, dvs. a, b, c, d, e og f.

Utdataene produsert som et resultat av å sende kommandolinjeargumenter av karaktertype til det samme C++-programmet er vist nedenfor:

Det totale antallet argumenter som returneres av dette C++-programmet er '7', dvs. argumenter på seks tegn som vi har sendt + navnet på objektfilen. Dette programmet skrev også ut elementene i 'argv'-tegnarrayen på terminalen, det vil si de faktiske tegntype-argumentene som ble sendt til dette programmet på kjøringstidspunktet, sammen med navnet på programmet.

Konklusjon:

Denne artikkelen var rettet mot diskusjonen av de to kommandolinjeargumentene, også kjent som parametrene til 'main()'-funksjonen, dvs. 'argc' og 'argv'. Vi snakket om betydningen av disse to parameterne ved å oppgi bruken deres. Deretter delte vi noen eksempler med deg som skildret bruken av 'argc' og 'argv' i C++ i Ubuntu 20.04. Dessuten presiserte vi også at selv uten å bruke disse parameterne, kan 'main()'-funksjonen fungere utmerket. Derfor, når du har lest denne artikkelen, vil du forstå bruken av 'argc' og 'argv' veldig tydelig i C++.