Argc ja Argv C++

Argc Ja Argv C



C++ programme kirjutades teame kõik, et funktsiooni “main()” peetakse väga oluliseks, kuna me ei saa oma programmi kompileerida, kui selle funktsiooni rakendamine puudub. Nagu kõik teised C++ funktsioonid, on ka funktsioon main() võimeline vastu võtma argumente. Argumentide edastamise funktsioonile 'main()' ja argumentide teistele funktsioonidele edastamise erinevus seisneb aga selles, et esimesel juhul peate argumendid edastama käsurea kaudu. Selle põhjuseks on asjaolu, et funktsioon 'main()' ise on draiverifunktsioon, mistõttu ükski teine ​​​​funktsioon ei suuda seda kutsuda ja sellele argumente edastada. Selles artiklis käsitleme funktsiooni 'main()' kahte parameetrit, st 'argc' ja 'argv' Ubuntu 20.04 C++-s.

Mis on Argc ja Argv Ubuntu 20.04 C++-s?

Parameeter “argc” viitab argumentide arvule, samas kui “argv” viitab märgimassiivile, mis sisaldab kõiki argumente, mis edastatakse funktsioonile “main()” käsurea kaudu programmi C++ käivitamise ajal. Siin peate teadma, et 'argc' näitab argumentide arvu alati kui '1' rohkem kui läbitud argumentide tegelik arv. Seda seetõttu, et objektifaili nime loetakse ka käsurea argumendiks. Saate edastada mis tahes andmetüübile kuuluvad käsurea argumendid funktsioonile 'main()'. Kõik, mida peate hoolitsema, on see, et need parameetrid oleksid mainitud teie funktsiooni 'main()' prototüübis, kui soovite neile selle sees juurde pääseda. Funktsioon “main()” võib aga ilma nende kahe parameetrita suurepäraselt töötada. Seda arutatakse selle artikli järgmises jaotises, pärast mida jätkame nende kahe parameetri kasutamist C++-s Ubuntu 20.04-s.

Peamine funktsioon ilma Argc ja Argvta C++ keeles:

Kõigepealt tahame teile öelda, et C++ funktsioon 'main()' töötab suurepäraselt ka ilma parameetreid 'argc' ja 'argv' kasutamata. Seda on kujutatud järgmises C++ programmis:









Meil on selles programmis lihtne funktsioon 'main()' ilma argumentideta. Selle funktsiooni “main()” raames prindime terminali ainult näidissõnumi.



Seejärel koostasime selle C++ põhiprogrammi allpool mainitud käsu abil:





$ g++ CommandLine.cpp –o CommandLine

Hiljem käivitasime selle programmi, käivitades järgmise käsu:



$ . / CommandLine

Selle lihtsa C++ programmi väljund on näidatud alloleval pildil:

C++ programmi käivitamine ilma käsurea argumente edastamata:

Nüüd proovime rakendada C++ programmi, milles funktsioon 'main()' on võimeline aktsepteerima parameetreid 'argc' ja 'argv', kuid me ei edasta neid argumente sellele programmi käivitamisel terminal. Nimetatud C++ programm on näidatud järgmisel pildil:

Selles C++ programmis on meie funktsioon 'main()' võimeline aktsepteerima 'argc' ja 'argv' parameetreid. Kuna me aga ei kavatsenud selles näites neid väärtusi talle edasi anda, oleme tahtlikult võrdsustanud “argc” väärtusega “0”, nii et kui proovime selle väärtust printida, ei tagasta see prügiväärtust. Pärast seda oleme terminalile trükkinud parameetri “argc” väärtuse. Seejärel oleme terminalis kõigi käsurea argumentide printimiseks kasutanud tsüklit 'for'.

Oleme selle koodi koostanud alloleva käsu abil:

$ g++ CommandLine.cpp –o CommandLine

Siis, kui tahtsime seda programmi käivitada, ei edastanud me sellele ühtegi käsurea argumenti, nagu näete järgmisest käsust:

$ . / CommandLine

Selle C++ programmi väljundist, mis on näidatud alloleval pildil, näete, et sellele funktsioonile ei edastatud ühtegi käsurea argumenti, mille tõttu argumentide arv oli '0' ja terminali ei trükitud ühtegi argumenti, kuna märgimassiivi ' argv” oli samuti tühi.

C++ programmi käivitamine täisarvu tüüpi käsureaargumentidega:

Nüüd tahame käivitada sama C++ programmi, edastades sellele täisarvu tüüpi käsurea argumendid. Enne seda aga muudame veidi oma koodi, nagu on näidatud järgmisel pildil:

Ainus muudatus, mille me sellesse koodi tegime, on see, et eemaldasime sellest rea 'argc=0', kuna selles näites tahame printida sellele programmile käitamise ajal edastatud käsurea argumentide tegeliku arvu. Ülejäänud kood on täpselt sama, mis on kasutatud ülaltoodud jaotises.

Kompileerisime oma muudetud koodi uuesti, kasutades allolevat käsku:

$ g++ CommandLine.cpp –o CommandLine

Seejärel kasutasime selle koodi täitmiseks järgmisi käsurea argumente:

$ . / CommandLine 1 kaks 3

See tähendab, et oleme sellele C++ programmile selle käivitamise ajal edastanud kolm täisarvu tüüpi käsurea argumenti, st 1, 2 ja 3.

Selle muudetud programmi väljund on näidatud alloleval pildil:

Selle C++ programmi poolt tagastatud argumentide koguarv on '4', st kolm täisarvuga argumenti, mille oleme edastanud + objektifaili nimi. See programm printis terminalis ka 'argv' märgimassiivi elemendid, st tegelikud täisarvu tüüpi argumendid, mis sellele programmile täitmise ajal edastati, koos programmi nimega.

C++ programmi käitamine märgitüüpi käsureaargumentidega:

Nüüd tahtsime näha, kas sama C++ programm töötab hästi, kui proovime seda käivitada, edastades sellele märgitüüpi käsurea argumendid. Selleks ei olnud meil vaja seda rohkem muuta. Pidime selle käivitama ainult märgitüüpi käsurea argumentidega järgmiselt:

$ . / Commandline a b c d e f

See tähendab, et oleme sellele C++ programmile selle käivitamise ajal edastanud kuuekohalised käsurea argumendid, st a, b, c, d, e ja f.

Allpool on näidatud väljund, mis saadakse märgitüüpi käsurea argumentide edastamisel samale C++ programmile:

Selle C++ programmi poolt tagastatud argumentide koguarv on '7', st kuuekohalised argumendid, mille oleme edastanud + objektifaili nimi. See programm printis terminalis ka märgimassiivi 'argv' elemendid, st tegelikud märgitüübi argumendid, mis sellele programmile täitmise ajal edastati, koos programmi nimega.

Järeldus:

Selle artikli eesmärk oli arutleda kahe käsurea argumendi üle, mida tuntakse ka funktsiooni 'main()' parameetritena, st 'argc' ja 'argv'. Rääkisime nende kahe parameetri olulisusest, tuues välja nende kasutamise. Seejärel jagasime teiega mõnda näidet, mis kirjeldasid 'argc' ja 'argv' kasutamist C++-s Ubuntu 20.04-s. Lisaks selgitasime ka seda, et isegi ilma neid parameetreid kasutamata võiks funktsioon “main()” suurepäraselt töötada. Seega, kui olete selle artikli läbi lugenud, mõistate 'argc' ja 'argv' kasutamist C++ keeles väga selgelt.