Argc a Argv C++

Argc A Argv C



Při psaní programů v C++ všichni víme, že funkce „main()“ je považována za velmi důležitou, protože nemůžeme zkompilovat náš program, pokud implementace této funkce chybí. Stejně jako všechny ostatní funkce v C++ je i funkce „main()“ schopna přijímat argumenty. Rozdíl mezi předáváním argumentů funkci „main()“ a předáváním argumentů jiným funkcím je však v tom, že v prvním případě musíte argumenty předávat přes příkazový řádek. Je tomu tak proto, že samotná funkce „main()“ je funkcí ovladače, a proto ji žádná jiná funkce nedokáže volat a předávat jí argumenty. V tomto článku budeme diskutovat o dvou parametrech funkce „main()“, tj. „argc“ a „argv“ v C++ v Ubuntu 20.04.

Co je Argc a Argv v C++ v Ubuntu 20.04?

Parametr „argc“ odkazuje na počet argumentů, zatímco „argv“ odkazuje na pole znaků, které obsahuje všechny argumenty, které jsou předány funkci „main()“ přes příkazový řádek v době provádění programu v C++. Zde musíte vědět, že „argc“ vždy zobrazuje počet argumentů o „1“ více, než je skutečný počet předaných argumentů. Je tomu tak proto, že název souboru objektu se také počítá jako argument příkazového řádku. Argumenty příkazového řádku patřící k libovolnému datovému typu můžete předat funkci „main()“. Vše, o co se musíte postarat, je, že tyto parametry jsou uvedeny v prototypu vaší funkce „main()“, pokud k nim chcete mít přístup uvnitř. Funkce „main()“ však může fungovat naprosto dobře i bez těchto dvou parametrů. To bude diskutováno v následující části tohoto článku, poté přistoupíme k použití těchto dvou parametrů v C++ v Ubuntu 20.04.

Hlavní funkce bez Argc a Argv v C++:

Nejprve bychom vám rádi řekli, že funkce „main()“ v C++ může fungovat naprosto dobře i bez použití parametrů „argc“ a „argv“. To je znázorněno v následujícím programu C++:









V tomto programu máme jednoduchou funkci „main()“ bez jakýchkoli argumentů. V rámci této funkce „main()“ tiskneme na terminál pouze vzorovou zprávu.



Poté jsme zkompilovali tento základní program C++ pomocí příkazu uvedeného níže:





$ g++ Příkazový řádek.cpp –o Příkazový řádek

Poté jsme tento program spustili spuštěním následujícího příkazu:



$ . / Příkazový řádek

Výstup tohoto jednoduchého programu v C++ je znázorněn na obrázku níže:

Spuštění programu v C++ bez zadávání jakýchkoli argumentů příkazového řádku:

Nyní se pokusíme implementovat program v C++, ve kterém je funkce „main()“ schopna přijmout parametry „argc“ a „argv“, tyto argumenty jí však nebudeme předávat při spouštění tohoto programu z terminál. Uvedený program C++ je zobrazen na následujícím obrázku:

V tomto programu C++ je naše funkce „main()“ schopna přijímat parametry „argc“ a „argv“. Protože jsme však v tomto konkrétním příkladu nezamýšleli předat mu tyto hodnoty, záměrně jsme vyrovnali „argc“ na „0“, takže když se pokusíme vytisknout jeho hodnotu, nevrací žádnou hodnotu nesmyslu. Poté jsme na terminál vytiskli hodnotu parametru „argc“. Poté jsme použili smyčku „for“ pro tisk všech argumentů příkazového řádku na terminálu.

Tento kód jsme zkompilovali pomocí příkazu uvedeného níže:

$ g++ Příkazový řádek.cpp –o Příkazový řádek

Když jsme pak chtěli tento program spustit, nepředali jsme mu žádné argumenty příkazového řádku, jak můžete vidět z následujícího příkazu:

$ . / Příkazový řádek

Z výstupu tohoto programu C++ zobrazeného na obrázku níže můžete vidět, že této funkci nebyly předány žádné argumenty příkazového řádku, protože počet argumentů byl „0“ a na terminálu nebyly vytištěny žádné argumenty, protože pole znaků „ argv“ byl také prázdný.

Spuštění programu C++ s argumenty příkazového řádku typu Integer:

Nyní chceme spustit stejný program C++ tak, že mu předáme celočíselné argumenty příkazového řádku. Než to však uděláme, mírně upravíme náš kód, jak je znázorněno na následujícím obrázku:

Jedinou úpravou, kterou jsme v tomto kódu provedli, je, že jsme z něj odstranili řádek „argc=0“, protože v tomto příkladu chceme vytisknout skutečný počet argumentů příkazového řádku předávaných tomuto programu za běhu. Zbytek kódu je přesně stejný jako ve výše uvedené části.

Znovu jsme zkompilovali náš upravený kód pomocí příkazu uvedeného níže:

$ g++ Příkazový řádek.cpp –o Příkazový řádek

Poté jsme pro spuštění tohoto kódu použili následující argumenty příkazového řádku:

$ . / Příkazový řádek 1 dva 3

To znamená, že jsme tomuto programu v C++ předali tři celočíselné argumenty příkazového řádku při jeho spuštění, tj. 1, 2 a 3.

Výstup tohoto upraveného programu je znázorněn na obrázku níže:

Celkový počet argumentů vrácených tímto programem C++ je „4“, tj. tři celočíselné argumenty, které jsme předali + název objektového souboru. Tento program také vytiskl prvky pole znaků „argv“ na terminálu, tj. skutečné argumenty typu integer, které byly tomuto programu předány v době provádění, spolu s názvem programu.

Spuštění programu C++ s argumenty příkazového řádku typu znaku:

Nyní jsme chtěli zjistit, zda stejný program v C++ funguje dobře, když se jej pokusíme spustit předáním argumentů příkazového řádku typu znaku. Z tohoto důvodu jsme jej nemuseli dále upravovat. Museli jsme to provést pouze s argumenty příkazového řádku typu znaku takto:

$ . / Příkazový řádek a b c d e f

To znamená, že jsme tomuto programu v C++ předali argumenty příkazového řádku o šesti znacích při jeho spuštění, tj. a, b, c, d, e a f.

Výstup vytvořený jako výsledek předání argumentů příkazového řádku typu znaku do stejného programu C++ je uveden níže:

Celkový počet argumentů vrácených tímto programem C++ je „7“, tj. šestimístné argumenty, které jsme předali + název souboru objektu. Tento program také vytiskl prvky pole znaků „argv“ na terminálu, tj. skutečné argumenty typu znaků, které byly tomuto programu předány v době provádění, spolu s názvem programu.

Závěr:

Tento článek byl zaměřen na diskusi o dvou argumentech příkazového řádku, známých také jako parametry funkce „main()“, tj. „argc“ a „argv“. O významu těchto dvou parametrů jsme hovořili uvedením jejich použití. Poté jsme s vámi sdíleli několik příkladů, které znázorňovaly použití „argc“ a „argv“ v C++ v Ubuntu 20.04. Navíc jsme také objasnili, že i bez použití těchto parametrů by funkce „main()“ mohla fungovat naprosto dobře. Jakmile si tedy přečtete tento článek, pochopíte velmi jasně použití „argc“ a „argv“ v C++.