Argc ir Argv C++

Argc Ir Argv C



Rašydami C++ programas visi žinome, kad funkcija „main()“ laikoma labai svarbia, nes negalime sukompiliuoti savo programos, jei trūksta šios funkcijos. Kaip ir visos kitos C++ funkcijos, funkcija „main()“ taip pat gali priimti argumentus. Tačiau skirtumas tarp argumentų perdavimo funkcijai „main()“ ir argumentų perdavimo kitoms funkcijoms yra tas, kad pirmuoju atveju turite perduoti argumentus per komandinę eilutę. Taip yra todėl, kad pati funkcija „main()“ yra tvarkyklės funkcija, todėl jokia kita funkcija negali jos iškviesti ir perduoti argumentų. Šiame straipsnyje aptarsime du funkcijos „main()“ parametrus, ty „argc“ ir „argv“ C++ Ubuntu 20.04 versijoje.

Kas yra Argc ir Argv C++ Ubuntu 20.04?

Parametras „argc“ nurodo argumentų skaičių, o „argv“ reiškia simbolių masyvą, kuriame yra visi argumentai, perduodami funkcijai „main()“ per komandinę eilutę vykdant programą C++. Čia jūs turite žinoti, kad „argc“ argumentų skaičius visada rodomas kaip „1“ didesnis nei tikrasis pateiktų argumentų skaičius. Taip yra todėl, kad objekto failo pavadinimas taip pat skaičiuojamas kaip komandinės eilutės argumentas. Komandinės eilutės argumentus, priklausančius bet kuriam duomenų tipui, galite perduoti funkcijai „main()“. Viskas, ko jums reikia, yra tai, kad šie parametrai būtų paminėti jūsų funkcijos „main()“ prototipe, jei norite juos pasiekti. Tačiau funkcija „main()“ gali puikiai veikti be šių dviejų parametrų. Tai bus aptarta kitame šio straipsnio skyriuje, po kurio mes pereisime prie šių dviejų parametrų naudojimo C++ Ubuntu 20.04.

Pagrindinė funkcija be Argc ir Argv C++:

Visų pirma, norime pasakyti, kad C++ funkcija „main()“ gali puikiai veikti net ir nenaudojant parametrų „argc“ ir „argv“. Tai pavaizduota šioje C++ programoje:









Šioje programoje turime paprastą funkciją „main()“ be jokių argumentų. Naudodami šią „main()“ funkciją, terminale spausdiname tik pranešimo pavyzdį.



Tada mes sukompiliavome šią pagrindinę C++ programą naudodami toliau nurodytą komandą:





$ g++ CommandLine.cpp –o CommandLine

Vėliau šią programą vykdėme vykdydami šią komandą:



$ . / Komandinė eilutė

Šios paprastos C++ programos išvestis parodyta paveikslėlyje žemiau:

C++ programos vykdymas nepraleidžiant jokių komandinės eilutės argumentų:

Dabar pabandysime įdiegti C++ programą, kurioje funkcija „main()“ gali priimti parametrus „argc“ ir „argv“, tačiau vykdydami šią programą iš terminalas. Minėta C++ programa parodyta šiame paveikslėlyje:

Šioje C++ programoje mūsų „main()“ funkcija gali priimti „argc“ ir „argv“ parametrus. Tačiau, kadangi šiame konkrečiame pavyzdyje neketinome jai perduoti šių reikšmių, sąmoningai išlyginome „argc“ į „0“, kad bandant atspausdinti jo reikšmę, ji negrąžintų jokios šiukšlės vertės. Po to terminale atspausdinome „argc“ parametro reikšmę. Tada mes panaudojome „for“ kilpą, kad spausdintume visus komandinės eilutės argumentus terminale.

Mes sudarėme šį kodą naudodami toliau pateiktą komandą:

$ g++ CommandLine.cpp –o CommandLine

Tada, kai norėjome paleisti šią programą, neperdavėme jai jokių komandinės eilutės argumentų, kaip matote iš šios komandos:

$ . / Komandinė eilutė

Iš šios C++ programos išvesties, parodytos žemiau esančiame paveikslėlyje, matote, kad šiai funkcijai nebuvo perduoti jokie komandinės eilutės argumentai, dėl kurių argumentų skaičius buvo „0“, o terminale argumentai nebuvo atspausdinti, nes simbolių masyvas „ argv“ taip pat buvo tuščias.

C++ programos vykdymas su sveikųjų skaičių komandų eilutės argumentais:

Dabar norime paleisti tą pačią C++ programą, perduodant jai sveikojo skaičiaus tipo komandinės eilutės argumentus. Tačiau prieš tai darydami šiek tiek pakeisime savo kodą, kaip parodyta šiame paveikslėlyje:

Vienintelis šio kodo pakeitimas yra tai, kad iš jo pašalinome eilutę „argc=0“, nes šiame pavyzdyje norime išspausdinti tikrąjį komandinės eilutės argumentų, perduodamų šiai programai vykdymo metu, skaičių. Likusi kodo dalis yra lygiai tokia pati, kaip ir anksčiau pateiktame skyriuje.

Mes iš naujo sukompiliavome modifikuotą kodą naudodami toliau pateiktą komandą:

$ g++ CommandLine.cpp –o CommandLine

Tada, norėdami vykdyti šį kodą, naudojome šiuos komandinės eilutės argumentus:

$ . / Komandinė eilutė 1 du 3

Tai reiškia, kad vykdydami šią C++ programą perdavėme tris sveikųjų skaičių tipo komandinės eilutės argumentus, ty 1, 2 ir 3.

Šios modifikuotos programos išvestis parodyta paveikslėlyje žemiau:

Bendras šios C++ programos pateiktų argumentų skaičius yra „4“, ty trys sveikieji argumentai, kuriuos perdavėme + objekto failo pavadinimas. Ši programa taip pat išspausdino „argv“ simbolių masyvo elementus terminale, t. y. faktinius sveikųjų skaičių tipo argumentus, kurie buvo perduoti šiai programai vykdymo metu, kartu su programos pavadinimu.

C++ programos vykdymas su simbolių tipo komandinės eilutės argumentais:

Dabar norėjome pamatyti, ar ta pati C++ programa veikia gerai, kai bandome ją vykdyti perduodant simbolių tipo komandinės eilutės argumentus. Tam mums nereikėjo jo daugiau keisti. Turėjome jį vykdyti tik su simbolių tipo komandinės eilutės argumentais, kaip nurodyta:

$ . / Komandinė eilutė a b c d e f

Tai reiškia, kad vykdydami šią C++ programą perdavėme šešių simbolių tipo komandinės eilutės argumentus, ty a, b, c, d, e ir f.

Išvestis, gauta perduodant simbolių tipo komandinės eilutės argumentus tai pačiai C++ programai, parodyta žemiau:

Bendras šios C++ programos pateiktų argumentų skaičius yra „7“, ty šešių simbolių argumentai, kuriuos perdavėme + objekto failo pavadinimas. Ši programa taip pat išspausdino „argv“ simbolių masyvo elementus terminale, t. y. faktinius simbolių tipo argumentus, kurie buvo perduoti šiai programai vykdymo metu, kartu su programos pavadinimu.

Išvada:

Šis straipsnis buvo skirtas aptarti du komandinės eilutės argumentus, taip pat žinomus kaip „main()“ funkcijos parametrai, ty „argc“ ir „argv“. Mes kalbėjome apie šių dviejų parametrų reikšmę, nurodydami jų naudojimą. Tada mes pasidalinome su jumis keliais pavyzdžiais, kuriuose buvo pavaizduotas „argc“ ir „argv“ naudojimas C++ Ubuntu 20.04 versijoje. Be to, mes taip pat paaiškinome, kad net ir nenaudojant šių parametrų, funkcija „main()“ gali veikti puikiai. Todėl perskaitę šį straipsnį labai aiškiai suprasite „argc“ ir „argv“ vartojimą C++.