Argc ja Argv C++

Argc Ja Argv C



C++-ohjelmia kirjoitettaessa me kaikki tiedämme, että “main()”-funktiota pidetään erittäin tärkeänä, koska emme voi kääntää ohjelmaamme, jos tämän funktion toteutus puuttuu. Kuten kaikki muutkin C++:n funktiot, 'main()'-funktio pystyy myös hyväksymään argumentteja. Kuitenkin ero argumenttien välittämisen 'main()'-funktioon ja argumenttien välityksen välillä muihin funktioihin on se, että sinun on välitettävä argumentit komentorivin kautta edellisessä tapauksessa. Se johtuu siitä, että 'main()'-funktio itsessään on ajurifunktio, minkä vuoksi mikään muu funktio ei pysty kutsumaan sitä ja välittämään sille argumentteja. Tässä artikkelissa käsittelemme 'main()'-funktion kahta parametria, eli 'argc' ja 'argv' C++:ssa Ubuntu 20.04:ssä.

Mikä on Argc ja Argv C++:ssa Ubuntu 20.04:ssä?

Parametri 'argc' viittaa argumenttien määrään, kun taas 'argv' viittaa merkkijonoon, joka sisältää kaikki argumentit, jotka välitetään 'main()'-funktiolle komentorivin kautta ohjelmaa suoritettaessa C++:ssa. Tässä sinun on tiedettävä, että 'argc' näyttää aina argumenttien määrän '1' enemmän kuin hyväksyttyjen argumenttien todellinen lukumäärä. Tämä johtuu siitä, että objektitiedoston nimi lasketaan myös komentoriviargumentiksi. Voit välittää mihin tahansa tietotyyppiin kuuluvat komentoriviargumentit 'main()'-funktiolle. Sinun tarvitsee vain huolehtia siitä, että nämä parametrit mainitaan 'main()'-funktiosi prototyypissä, jos haluat käyttää niitä sen sisällä. Kuitenkin 'main()'-funktio voi toimia täydellisesti ilman näitä kahta parametria. Tätä käsitellään tämän artikkelin seuraavassa osiossa, jonka jälkeen siirrymme näiden kahden parametrin käyttöön C++:ssa Ubuntu 20.04:ssä.

Päätoiminto ilman Argc:tä ja Argv:tä C++:ssa:

Ensinnäkin haluaisimme kertoa, että C++:n “main()”-funktio voi toimia täydellisesti myös ilman parametreja “argc” ja “argv”. Tämä on kuvattu seuraavassa C++-ohjelmassa:









Meillä on tässä ohjelmassa yksinkertainen 'main()'-funktio ilman argumentteja. Tässä 'main()'-funktiossa tulostamme vain malliviestin päätteelle.



Sitten käänsimme tämän C++-perusohjelman alla mainitun komennon avulla:





$ g++ CommandLine.cpp –o CommandLine

Myöhemmin suoritimme tämän ohjelman suorittamalla seuraavan komennon:



$ . / Komentorivi

Tämän yksinkertaisen C++-ohjelman tulos näkyy alla olevassa kuvassa:

C++-ohjelman suorittaminen ilman komentoriviargumentteja:

Nyt yritämme toteuttaa C++-ohjelman, jossa 'main()'-funktio pystyy hyväksymään parametrit 'argc' ja 'argv', mutta emme välitä sille näitä argumentteja suoritettaessa tätä ohjelmaa terminaali. Mainittu C++-ohjelma näkyy seuraavassa kuvassa:

Tässä C++-ohjelmassa 'main()'-funktiomme pystyy hyväksymään 'argc'- ja 'argv'-parametrit. Koska emme kuitenkaan aikoneet välittää näitä arvoja sille tässä esimerkissä, olemme tarkoituksella tasoittaneet 'argc' arvoon '0', jotta kun yritämme tulostaa sen arvon, se ei palauta mitään roskaarvoa. Tämän jälkeen olemme tulostaneet argc-parametrin arvon terminaaliin. Sitten olemme käyttäneet 'for'-silmukkaa kaikkien komentoriviargumenttien tulostamiseen terminaalissa.

Olemme koonneet tämän koodin käyttämällä alla näkyvää komentoa:

$ g++ CommandLine.cpp –o CommandLine

Sitten kun halusimme ajaa tätä ohjelmaa, emme välittäneet sille mitään komentoriviargumentteja, kuten näet seuraavasta komennosta:

$ . / Komentorivi

Tämän C++-ohjelman tulosteesta, joka näkyy alla olevassa kuvassa, voit nähdä, että tälle funktiolle ei ole välitetty komentoriviargumentteja, minkä vuoksi argumenttien määrä oli '0' eikä terminaaliin tulostettu argumentteja, koska merkkijono ' argv” oli myös tyhjä.

C++-ohjelman suorittaminen kokonaislukutyyppisillä komentoriviargumenteilla:

Nyt haluamme suorittaa saman C++-ohjelman välittämällä sille kokonaislukutyyppisiä komentoriviargumentteja. Ennen kuin teemme sen, muokkaamme koodiamme hieman seuraavan kuvan mukaisesti:

Ainoa tähän koodiin tekemämme muutos on se, että olemme poistaneet rivin 'argc=0', koska tässä esimerkissä haluamme tulostaa tälle ohjelmalle ajon aikana välitettyjen komentoriviargumenttien todellisen määrän. Muu osa koodista on täsmälleen sama kuin yllä olevassa osiossa.

Käänsimme muokatun koodimme uudelleen käyttämällä alla olevaa komentoa:

$ g++ CommandLine.cpp –o CommandLine

Sitten tämän koodin suorittamiseen käytimme seuraavia komentoriviargumentteja:

$ . / Komentorivi 1 kaksi 3

Se tarkoittaa, että olemme välittäneet tälle C++-ohjelmalle kolme kokonaislukutyyppistä komentoriviargumenttia sitä suoritettaessa, eli 1, 2 ja 3.

Tämän muokatun ohjelman tulos näkyy alla olevassa kuvassa:

Tämän C++-ohjelman palauttamien argumenttien kokonaismäärä on '4' eli kolme hyväksymäämme kokonaislukuargumenttia + objektitiedoston nimi. Tämä ohjelma myös tulostaa terminaaliin 'argv'-merkkijonon elementit, eli todelliset kokonaislukutyyppiset argumentit, jotka välitettiin tälle ohjelmalle suorituksen aikana, ohjelman nimen kanssa.

C++-ohjelman suorittaminen merkkityypin komentoriviargumenteilla:

Nyt halusimme nähdä, toimiiko sama C++-ohjelma hyvin, kun yritämme suorittaa sen välittämällä sille merkkityyppisiä komentoriviargumentteja. Tätä varten meidän ei tarvinnut muokata sitä enempää. Meidän piti suorittaa se vain merkkityypin komentoriviargumenteilla seuraavasti:

$ . / Komentorivi a b c d e f

Se tarkoittaa, että olemme välittäneet tälle C++-ohjelmalle kuuden merkin tyyppisiä komentoriviargumentteja sitä suoritettaessa, eli a, b, c, d, e ja f.

Alla näkyy tulos, joka syntyy merkkityypin komentoriviargumenttien välittämisen seurauksena samalle C++-ohjelmalle:

Tämän C++-ohjelman palauttamien argumenttien kokonaismäärä on '7' eli ohittamiamme kuuden merkin argumentteja + objektitiedoston nimi. Tämä ohjelma myös tulostaa terminaaliin 'argv'-merkkitaulukon elementit, eli todelliset merkkityyppiargumentit, jotka välitettiin tälle ohjelmalle suorituksen aikana, ohjelman nimen kanssa.

Johtopäätös:

Tämän artikkelin tarkoituksena oli keskustella kahdesta komentoriviargumentista, jotka tunnetaan myös 'main()'-funktion parametreina, eli 'argc' ja 'argv'. Puhuimme näiden kahden parametrin merkityksestä ilmoittamalla niiden käytön. Sitten jaoimme kanssasi muutamia esimerkkejä, jotka kuvaavat 'argc' ja 'argv' käyttöä C++:ssa Ubuntu 20.04:ssä. Lisäksi selvensimme myös, että jopa ilman näitä parametreja 'main()'-funktio voisi toimia täydellisesti. Siksi, kun luet tämän artikkelin, ymmärrät 'argc' ja 'argv' käytön erittäin selvästi C++:ssa.