Argc i Argv C++

Argc I Argv C



Pisząc programy w C++, wszyscy wiemy, że funkcja „main()” jest uważana za bardzo ważną, ponieważ nie możemy skompilować naszego programu, jeśli brakuje implementacji tej funkcji. Podobnie jak wszystkie inne funkcje w C++, funkcja „main()” może również przyjmować argumenty. Jednak różnica między przekazywaniem argumentów do funkcji „main()” a przekazywaniem argumentów do innych funkcji polega na tym, że w pierwszym przypadku musisz przekazać argumenty przez wiersz poleceń. Dzieje się tak, ponieważ sama funkcja „main()” jest funkcją sterującą, dlatego żadna inna funkcja nie jest w stanie jej wywołać i przekazać jej argumentów. W tym artykule omówimy dwa parametry funkcji „main()”, tj. „argc” i „argv” w C++ w Ubuntu 20.04.

Co to jest Argc i Argv w C++ w Ubuntu 20.04?

Parametr „argc” odnosi się do liczby argumentów, podczas gdy „argv” odnosi się do tablicy znaków, która zawiera wszystkie argumenty przekazywane do funkcji „main()” za pośrednictwem wiersza poleceń w czasie wykonywania programu w C++. Tutaj musisz wiedzieć, że „argc” zawsze pokazuje liczbę argumentów jako „1” większą niż rzeczywista liczba przekazanych argumentów. Dzieje się tak, ponieważ nazwa pliku obiektowego jest również liczona jako argument wiersza poleceń. Możesz przekazać argumenty wiersza poleceń należące do dowolnego typu danych do funkcji „main()”. Wszystko, o co musisz zadbać, to aby te parametry były wymienione w prototypie funkcji „main()”, jeśli chcesz uzyskać do nich dostęp. Jednak funkcja „main()” może działać doskonale bez tych dwóch parametrów. Zostanie to omówione w następnej części tego artykułu, po czym przejdziemy do użycia tych dwóch parametrów w C++ w Ubuntu 20.04.

Główna funkcja bez Argc i Argv w C++:

Przede wszystkim chcielibyśmy powiedzieć, że funkcja „main()” w C++ może działać doskonale nawet bez użycia parametrów „argc” i „argv”. Jest to zilustrowane w następującym programie C++:









Mamy w tym programie prostą funkcję „main()” bez żadnych argumentów. W ramach tej funkcji „main()” drukujemy tylko przykładową wiadomość na terminalu.



Następnie skompilowaliśmy ten podstawowy program C++ za pomocą polecenia wymienionego poniżej:





$ g++ CommandLine.cpp –o CommandLine

Następnie wykonaliśmy ten program, uruchamiając następujące polecenie:



$ . / Wiersz poleceń

Dane wyjściowe tego prostego programu C++ pokazano na poniższym obrazku:

Uruchamianie programu w C++ bez przekazywania argumentów wiersza poleceń:

Teraz spróbujemy zaimplementować program w C++, w którym funkcja „main()” jest w stanie przyjąć parametry „argc” i „argv”, jednak nie będziemy jej przekazywać tych argumentów podczas wykonywania tego programu z terminal. Wspomniany program C++ pokazano na poniższym obrazku:

W tym programie C++ nasza funkcja „main()” może przyjmować parametry „argc” i „argv”. Ponieważ jednak nie zamierzaliśmy przekazywać mu tych wartości w tym konkretnym przykładzie, celowo wyrównaliśmy „argc” do „0”, aby przy próbie wydrukowania jego wartości nie zwracało ono żadnej wartości śmieci. Następnie wydrukowaliśmy wartość parametru „argc” na terminalu. Następnie użyliśmy pętli „for” do wyświetlenia wszystkich argumentów wiersza poleceń na terminalu.

Skompilowaliśmy ten kod za pomocą polecenia pokazanego poniżej:

$ g++ CommandLine.cpp –o CommandLine

Następnie, gdy chcieliśmy uruchomić ten program, nie przekazaliśmy mu żadnych argumentów wiersza poleceń, jak widać z następującego polecenia:

$ . / Wiersz poleceń

Z danych wyjściowych tego programu C++ pokazanego na poniższym obrazku widać, że żadne argumenty wiersza poleceń nie zostały przekazane do tej funkcji, z powodu której liczba argumentów wynosiła „0” i żadne argumenty nie zostały wydrukowane na terminalu, ponieważ tablica znaków „ argv” również był pusty.

Uruchamianie programu C++ z argumentami wiersza poleceń typu Integer:

Teraz chcemy uruchomić ten sam program C++, przekazując mu argumenty wiersza poleceń typu całkowitego. Jednak zanim to zrobimy, nieco zmodyfikujemy nasz kod, jak pokazano na poniższym obrazku:

Jedyną modyfikacją, jaką wprowadziliśmy w tym kodzie, jest usunięcie z niego wiersza „argc=0”, ponieważ w tym przykładzie chcemy wydrukować rzeczywistą liczbę argumentów wiersza poleceń przekazanych do tego programu w czasie wykonywania. Pozostała część kodu jest dokładnie taka sama jak użyta w powyższej sekcji.

Ponownie skompilowaliśmy nasz zmodyfikowany kod za pomocą polecenia pokazanego poniżej:

$ g++ CommandLine.cpp –o CommandLine

Następnie do wykonania tego kodu użyliśmy następujących argumentów wiersza poleceń:

$ . / Wiersz poleceń 1 dwa 3

Oznacza to, że przekazaliśmy trzy argumenty wiersza poleceń typu całkowitego do tego programu C++ podczas jego uruchamiania, tj. 1, 2 i 3.

Wynik tego zmodyfikowanego programu pokazano na poniższym obrazku:

Całkowita liczba argumentów zwróconych przez ten program C++ to „4”, tj. trzy argumenty całkowite, które przekazaliśmy + nazwa pliku obiektowego. Ten program drukował również elementy tablicy znaków „argv” na terminalu, tj. rzeczywiste argumenty typu całkowitego, które zostały przekazane do tego programu w czasie wykonywania, wraz z nazwą programu.

Uruchamianie programu w C++ z argumentami wiersza poleceń typu znakowego:

Teraz chcieliśmy sprawdzić, czy ten sam program C++ działa dobrze, gdy próbujemy go wykonać, przekazując mu argumenty wiersza poleceń typu znakowego. W tym celu nie musieliśmy go dalej modyfikować. Musieliśmy tylko wykonać go z argumentami wiersza poleceń typu znakowego w następujący sposób:

$ . / Linia poleceń a b c d e f

Oznacza to, że przekazaliśmy temu programowi w C++ sześcioznakowe argumenty wiersza poleceń podczas jego uruchamiania, tj. a, b, c, d, e oraz f.

Dane wyjściowe wygenerowane w wyniku przekazania argumentów wiersza poleceń typu znakowego do tego samego programu C++ przedstawiono poniżej:

Całkowita liczba argumentów zwróconych przez ten program w C++ to „7”, czyli sześcioznakowe argumenty, które przekazaliśmy + nazwa pliku obiektowego. Ten program drukował również elementy tablicy znaków „argv” na terminalu, tj. rzeczywiste argumenty typu znaków, które zostały przekazane do tego programu w czasie wykonywania, wraz z nazwą programu.

Wniosek:

Ten artykuł miał na celu omówienie dwóch argumentów wiersza poleceń, znanych również jako parametry funkcji „main()”, tj. „argc” i „argv”. O znaczeniu tych dwóch parametrów rozmawialiśmy, podając ich zastosowanie. Następnie udostępniliśmy kilka przykładów, które przedstawiały użycie „argc” i „argv” w C++ w Ubuntu 20.04. Ponadto wyjaśniliśmy również, że nawet bez użycia tych parametrów funkcja „main()” może działać doskonale. Dlatego po przeczytaniu tego artykułu bardzo dobrze zrozumiesz użycie „argc” i „argv” w C++.