Argc en Argv C++

Argc En Argv C



Bij het schrijven van C++-programma's weten we allemaal dat de functie 'main()' als erg belangrijk wordt beschouwd, omdat we ons programma niet kunnen compileren als de implementatie van deze functie ontbreekt. Net als alle andere functies in C++ kan ook de functie 'main()' argumenten accepteren. Het verschil tussen het doorgeven van argumenten aan de functie 'main()' en het doorgeven van argumenten aan de andere functies is echter dat u de argumenten in het eerste geval via de opdrachtregel moet doorgeven. Dit komt omdat de functie 'main()' zelf de stuurprogrammafunctie is en daarom is geen enkele andere functie in staat deze aan te roepen en er argumenten aan door te geven. In dit artikel bespreken we de twee parameters van de functie 'main()', d.w.z. 'argc' en 'argv' in C++ in Ubuntu 20.04.

Wat is Argc en Argv in C++ in Ubuntu 20.04?

De parameter 'argc' verwijst naar het aantal argumenten, terwijl 'argv' verwijst naar een tekenarray die alle argumenten bevat die worden doorgegeven aan de functie 'main()' via de opdrachtregel op het moment dat een programma in C++ wordt uitgevoerd. Hier moet u weten dat 'argc' altijd het aantal argumenten weergeeft als '1' meer dan het werkelijke aantal doorgegeven argumenten. Dit komt omdat de naam van het objectbestand ook wordt geteld als een opdrachtregelargument. U kunt de opdrachtregelargumenten die bij elk gegevenstype horen, doorgeven aan de functie 'main()'. Het enige waar u voor hoeft te zorgen, is dat deze parameters worden vermeld in het prototype van uw 'main()' -functie als u ze erin wilt openen. De functie 'main()' kan echter perfect werken zonder deze twee parameters. Dit wordt in het volgende gedeelte van dit artikel besproken, waarna we overgaan tot het gebruik van deze twee parameters in C++ in Ubuntu 20.04.

De hoofdfunctie zonder Argc en Argv in C++:

Allereerst willen we u vertellen dat de functie 'main()' in C++ perfect kan werken, zelfs zonder de parameters 'argc' en 'argv' te gebruiken. Dit wordt weergegeven in het volgende C++-programma:









We hebben een eenvoudige 'main()'-functie in dit programma zonder enige argumenten. Binnen deze functie 'main()' drukken we alleen een voorbeeldbericht af op de terminal.



Vervolgens hebben we dit basis C++-programma gecompileerd met behulp van de onderstaande opdracht:





$ g++ CommandLine.cpp –o CommandLine

Daarna hebben we dit programma uitgevoerd door de volgende opdracht uit te voeren:



$ . / Opdrachtregel

De uitvoer van dit eenvoudige C++-programma wordt weergegeven in de onderstaande afbeelding:

Een C++-programma uitvoeren zonder opdrachtregelargumenten door te geven:

Nu zullen we proberen een C++-programma te implementeren waarin de functie 'main()' de parameters 'argc' en 'argv' kan accepteren. We zullen deze argumenten echter niet doorgeven tijdens het uitvoeren van dit programma vanaf de terminal. Het genoemde C ++ -programma wordt weergegeven in de volgende afbeelding:

In dit C++-programma kan onze functie 'main()' de parameters 'argc' en 'argv' accepteren. Omdat we echter niet van plan waren om deze waarden in dit specifieke voorbeeld door te geven, hebben we opzettelijk 'argc' gelijk gemaakt aan '0', zodat wanneer we proberen de waarde ervan af te drukken, er geen afvalwaarde wordt geretourneerd. Daarna hebben we de waarde van de parameter 'argc' op de terminal afgedrukt. Vervolgens hebben we een 'for' -lus gebruikt om alle opdrachtregelargumenten op de terminal af te drukken.

We hebben deze code gecompileerd met behulp van de onderstaande opdracht:

$ g++ CommandLine.cpp –o CommandLine

Toen we dit programma wilden uitvoeren, hebben we er geen opdrachtregelargumenten aan doorgegeven, zoals je kunt zien aan de hand van de volgende opdracht:

$ . / Opdrachtregel

Uit de uitvoer van dit C++-programma, weergegeven in de onderstaande afbeelding, kunt u zien dat er geen opdrachtregelargumenten aan deze functie zijn doorgegeven, waardoor het aantal argumenten '0' was en er geen argumenten op de terminal werden afgedrukt omdat de tekenarray ' argv' was ook leeg.

Een C++-programma uitvoeren met opdrachtregelargumenten van het type Integer:

Nu willen we hetzelfde C++-programma uitvoeren door er opdrachtregelargumenten van het type integer aan door te geven. Voordat we dat doen, zullen we onze code enigszins aanpassen, zoals weergegeven in de volgende afbeelding:

De enige wijziging die we in deze code hebben aangebracht, is dat we de regel 'argc=0' eruit hebben verwijderd, omdat we in dit voorbeeld het daadwerkelijke aantal opdrachtregelargumenten willen afdrukken dat tijdens runtime aan dit programma is doorgegeven. De rest van de code is precies hetzelfde als in het bovenstaande gedeelte.

We hebben onze gewijzigde code opnieuw gecompileerd met behulp van de onderstaande opdracht:

$ g++ CommandLine.cpp –o CommandLine

Vervolgens hebben we voor het uitvoeren van deze code de volgende opdrachtregelargumenten gebruikt:

$ . / Opdrachtregel 1 twee 3

Het betekent dat we drie integer-type opdrachtregelargumenten aan dit C++-programma hebben doorgegeven tijdens het uitvoeren ervan, d.w.z. 1, 2 en 3.

De uitvoer van dit aangepaste programma wordt weergegeven in de onderstaande afbeelding:

Het totale aantal argumenten dat door dit C++-programma wordt geretourneerd, is '4', d.w.z. drie integer-argumenten die we hebben doorgegeven + de naam van het objectbestand. Dit programma drukte ook de elementen van de 'argv' karakterarray af op de terminal, d.w.z. de eigenlijke integer type argumenten die aan dit programma werden doorgegeven op het moment van uitvoering, samen met de naam van het programma.

Een C++-programma uitvoeren met opdrachtregelargumenten voor het type teken:

Nu wilden we zien of hetzelfde C++-programma goed werkt als we het proberen uit te voeren door er opdrachtregelargumenten van het type karakter aan door te geven. Daarvoor hoefden we het niet verder aan te passen. We hoefden het alleen als volgt uit te voeren met opdrachtregelargumenten van het type karakter:

$ . / Opdrachtregel a b c d e f

Het betekent dat we tijdens het uitvoeren van dit C++-programma opdrachtregelargumenten van het type van zes tekens hebben doorgegeven, d.w.z. a, b, c, d, e en f.

De uitvoer die wordt geproduceerd als resultaat van het doorgeven van opdrachtregelargumenten van het tekentype aan hetzelfde C++-programma, wordt hieronder weergegeven:

Het totale aantal argumenten dat door dit C++-programma wordt geretourneerd, is '7', d.w.z. argumenten van zes tekens die we hebben doorgegeven + de naam van het objectbestand. Dit programma drukte ook de elementen van de 'argv'-karakterarray op de terminal af, d.w.z. de eigenlijke karaktertype-argumenten die aan dit programma werden doorgegeven op het moment van uitvoering, samen met de naam van het programma.

Conclusie:

Dit artikel was gericht op de bespreking van de twee opdrachtregelargumenten, ook wel bekend als de parameters van de functie 'main()', d.w.z. 'argc' en 'argv'. We hebben gesproken over de betekenis van deze twee parameters door hun gebruik te vermelden. Vervolgens hebben we een paar voorbeelden met u gedeeld die het gebruik van 'argc' en 'argv' in C++ in Ubuntu 20.04 weergeven. Bovendien hebben we ook verduidelijkt dat zelfs zonder deze parameters te gebruiken, de functie 'main()' perfect zou kunnen werken. Daarom, als je dit artikel eenmaal hebt gelezen, zul je het gebruik van 'argc' en 'argv' heel duidelijk begrijpen in C ++.