Argc e Argv C++

Argc E Argv C



Mentre scriviamo programmi in C++, sappiamo tutti che la funzione “main()” è considerata molto importante poiché non possiamo compilare il nostro programma se manca l'implementazione di questa funzione. Proprio come tutte le altre funzioni in C++, anche la funzione 'main()' è in grado di accettare argomenti. Tuttavia, la differenza tra passare argomenti alla funzione 'main()' e passare argomenti alle altre funzioni è che devi passare gli argomenti attraverso la riga di comando nel primo caso. È così perché la funzione 'main ()' stessa è la funzione driver, motivo per cui nessun'altra funzione è in grado di chiamarla e passarle argomenti. In questo articolo, discuteremo i due parametri della funzione 'main()', ovvero 'argc' e 'argv' in C++ in Ubuntu 20.04.

Cosa sono Argc e Argv in C++ in Ubuntu 20.04?

Il parametro 'argc' si riferisce al conteggio degli argomenti, mentre 'argv' si riferisce a un array di caratteri che contiene tutti gli argomenti che vengono passati alla funzione 'main()' tramite la riga di comando al momento dell'esecuzione di un programma in C++. Qui, devi sapere che 'argc' mostra sempre il conteggio degli argomenti come '1' in più rispetto al numero effettivo degli argomenti passati. Questo perché anche il nome del file oggetto viene conteggiato come argomento della riga di comando. È possibile passare gli argomenti della riga di comando appartenenti a qualsiasi tipo di dati alla funzione 'main()'. Tutto ciò di cui hai bisogno è che questi parametri siano menzionati nel prototipo della tua funzione 'main ()' se vuoi accedervi al suo interno. Tuttavia, la funzione 'main()' può funzionare perfettamente senza questi due parametri. Questo sarà discusso nella sezione seguente di questo articolo, dopodiché procederemo all'utilizzo di questi due parametri in C++ in Ubuntu 20.04.

La funzione principale senza Argc e Argv in C++:

Innanzitutto vorremmo dirvi che la funzione “main()” in C++ può funzionare perfettamente anche senza utilizzare i parametri “argc” e “argv”. Questo è illustrato nel seguente programma C++:









Abbiamo una semplice funzione 'main()' in questo programma senza argomenti. All'interno di questa funzione 'main()', stiamo solo stampando un messaggio di esempio sul terminale.



Quindi, abbiamo compilato questo programma C++ di base con l'aiuto del comando menzionato di seguito:





$ g++ CommandLine.cpp –o CommandLine

Successivamente, abbiamo eseguito questo programma eseguendo il seguente comando:



$ . / Riga di comando

L'output di questo semplice programma C++ è mostrato nell'immagine qui sotto:

Esecuzione di un programma C++ senza passare alcun argomento della riga di comando:

Ora, proveremo ad implementare un programma C++ in cui la funzione “main()” è in grado di accettare i parametri “argc” e “argv”, tuttavia, non gli passeremo questi argomenti durante l'esecuzione di questo programma dal terminale. Il suddetto programma C++ è mostrato nell'immagine seguente:

In questo programma C++, la nostra funzione 'main()' è in grado di accettare i parametri 'argc' e 'argv'. Tuttavia, poiché non intendevamo passargli questi valori in questo particolare esempio, abbiamo intenzionalmente equalizzato 'argc' a '0' in modo che quando proviamo a stampare il suo valore, non restituirà alcun valore spazzatura. Successivamente, abbiamo stampato sul terminale il valore del parametro “argc”. Quindi, abbiamo utilizzato un ciclo 'for' per stampare tutti gli argomenti della riga di comando sul terminale.

Abbiamo compilato questo codice utilizzando il comando mostrato di seguito:

$ g++ CommandLine.cpp –o CommandLine

Quindi, quando volevamo eseguire questo programma, non gli abbiamo passato alcun argomento della riga di comando, come puoi vedere dal seguente comando:

$ . / Riga di comando

Dall'output di questo programma C++ mostrato nell'immagine sottostante, puoi vedere che nessun argomento della riga di comando è stato passato a questa funzione a causa della quale il conteggio degli argomenti era '0' e nessun argomento è stato stampato sul terminale perché l'array di caratteri ' argv' era vuoto.

Esecuzione di un programma C++ con argomenti della riga di comando di tipo intero:

Ora, vogliamo eseguire lo stesso programma C++ passandogli argomenti della riga di comando di tipo intero. Tuttavia, prima di farlo, modificheremo leggermente il nostro codice come mostrato nell'immagine seguente:

L'unica modifica che abbiamo apportato a questo codice è che abbiamo rimosso la riga 'argc=0' perché in questo esempio vogliamo stampare il numero effettivo degli argomenti della riga di comando passati a questo programma in fase di esecuzione. Il resto del codice è esattamente lo stesso utilizzato nella sezione precedente.

Abbiamo ricompilato il nostro codice modificato utilizzando il comando mostrato di seguito:

$ g++ CommandLine.cpp –o CommandLine

Quindi, per eseguire questo codice, abbiamo utilizzato i seguenti argomenti della riga di comando:

$ . / Riga di comando 1 Due 3

Significa che abbiamo passato tre argomenti della riga di comando di tipo intero a questo programma C++ durante l'esecuzione, ovvero 1, 2 e 3.

L'output di questo programma modificato è mostrato nell'immagine seguente:

Il numero totale di argomenti restituiti da questo programma C++ è '4', ovvero tre argomenti interi che abbiamo passato + il nome del file oggetto. Questo programma stampava anche gli elementi dell'array di caratteri 'argv' sul terminale, cioè gli attuali argomenti di tipo intero passati a questo programma al momento dell'esecuzione, insieme al nome del programma.

Esecuzione di un programma C++ con argomenti della riga di comando di tipo carattere:

Ora, volevamo vedere se lo stesso programma C++ funziona correttamente quando proviamo ad eseguirlo passandogli argomenti della riga di comando di tipo carattere. Per questo, non abbiamo avuto bisogno di modificarlo ulteriormente. Dovevamo solo eseguirlo con argomenti della riga di comando di tipo carattere come segue:

$ . / Riga di comando a b c d e f

Significa che abbiamo passato argomenti della riga di comando di tipo a sei caratteri a questo programma C++ durante l'esecuzione, ad esempio a, b, c, d, e e f.

L'output prodotto come risultato del passaggio di argomenti della riga di comando di tipo carattere allo stesso programma C++ è mostrato di seguito:

Il numero totale di argomenti restituiti da questo programma C++ è '7', ovvero argomenti di sei caratteri che abbiamo passato + il nome del file oggetto. Questo programma ha anche stampato gli elementi dell'array di caratteri 'argv' sul terminale, cioè gli argomenti del tipo di carattere effettivo che sono stati passati a questo programma al momento dell'esecuzione, insieme al nome del programma.

Conclusione:

Questo articolo era finalizzato alla discussione dei due argomenti della riga di comando, noti anche come parametri della funzione 'main()', ovvero 'argc' e 'argv'. Abbiamo parlato del significato di questi due parametri indicandone l'utilizzo. Quindi, abbiamo condiviso con voi alcuni esempi che descrivevano l'uso di 'argc' e 'argv' in C++ in Ubuntu 20.04. Inoltre, abbiamo anche chiarito che anche senza utilizzare questi parametri, la funzione “main()” potrebbe funzionare perfettamente. Pertanto, una volta letto questo articolo, capirai molto chiaramente l'uso di 'argc' e 'argv' in C++.