Argc e Argv C++

Argc E Argv C



Ao escrever programas C++, todos sabemos que a função “main()” é considerada muito importante, pois não podemos compilar nosso programa se a implementação dessa função estiver faltando. Assim como todas as outras funções em C++, a função “main()” também é capaz de aceitar argumentos. No entanto, a diferença entre passar argumentos para a função “main()” e passar argumentos para outras funções é que você tem que passar os argumentos através da linha de comando no primeiro caso. É assim porque a própria função “main ()” é a função do driver, e é por isso que nenhuma outra função é capaz de chamá-la e passar argumentos para ela. Neste artigo, discutiremos os dois parâmetros da função “main()”, ou seja, “argc” e “argv” em C++ no Ubuntu 20.04.

O que é Argc e Argv em C++ no Ubuntu 20.04?

O parâmetro “argc” refere-se à contagem de argumentos, enquanto “argv” refere-se a um array de caracteres que contém todos os argumentos que são passados ​​para a função “main()” através da linha de comando no momento da execução de um programa em C++. Aqui, você precisa saber que “argc” sempre mostra a contagem de argumentos como “1” a mais do que o número real de argumentos passados. Isso ocorre porque o nome do arquivo objeto também é contado como um argumento de linha de comando. Você pode passar os argumentos de linha de comando pertencentes a qualquer tipo de dados para a função “main()”. Tudo o que você precisa cuidar é que esses parâmetros sejam mencionados no protótipo da sua função “main ()” se você quiser acessá-los dentro dela. No entanto, a função “main()” pode funcionar perfeitamente bem sem esses dois parâmetros. Isso será discutido na próxima seção deste artigo, após o qual procederemos ao uso desses dois parâmetros em C++ no Ubuntu 20.04.

A função principal sem Argc e Argv em C++:

Em primeiro lugar, gostaríamos de dizer que a função “main()” em C++ pode funcionar perfeitamente bem mesmo sem usar os parâmetros “argc” e “argv”. Isso é representado no seguinte programa C++:









Temos uma função simples “main ()” neste programa sem nenhum argumento. Dentro desta função “main ()”, estamos apenas imprimindo uma mensagem de exemplo no terminal.



Em seguida, compilamos este programa C++ básico com a ajuda do comando mencionado abaixo:





$ g++ CommandLine.cpp –o CommandLine

Depois, executamos este programa executando o seguinte comando:



$ . / Linha de comando

A saída deste programa C++ simples é mostrada na imagem abaixo:

Executando um programa C++ sem passar nenhum argumento de linha de comando:

Agora, vamos tentar implementar um programa em C++ em que a função “main()” seja capaz de aceitar os parâmetros “argc” e “argv”, porém, não estaremos passando esses argumentos para ela enquanto executamos este programa a partir do terminal. O referido programa C++ é mostrado na imagem a seguir:

Neste programa C++, nossa função “main()” é capaz de aceitar os parâmetros “argc” e “argv”. No entanto, como não pretendíamos passar esses valores para ele neste exemplo específico, igualamos intencionalmente “argc” a “0” para que, quando tentarmos imprimir seu valor, ele não retorne nenhum valor lixo. Depois disso, imprimimos o valor do parâmetro “argc” no terminal. Em seguida, usamos um loop “for” para imprimir todos os argumentos da linha de comando no terminal.

Nós compilamos este código usando o comando mostrado abaixo:

$ g++ CommandLine.cpp –o CommandLine

Então, quando queríamos executar este programa, não passamos nenhum argumento de linha de comando para ele, como você pode ver no seguinte comando:

$ . / Linha de comando

A partir da saída deste programa C++ mostrado na imagem abaixo, você pode ver que nenhum argumento de linha de comando foi passado para esta função por causa da qual a contagem de argumentos era “0” e nenhum argumento foi impresso no terminal porque a matriz de caracteres “ argv” também estava vazio.

Executando um programa C++ com argumentos de linha de comando de tipo inteiro:

Agora, queremos executar o mesmo programa C++ passando argumentos de linha de comando do tipo inteiro para ele. Porém, antes de fazer isso, vamos modificar um pouco nosso código conforme a imagem a seguir:

A única modificação que fizemos neste código é que removemos a linha “argc=0” dele porque, neste exemplo, queremos imprimir o número real dos argumentos de linha de comando passados ​​para este programa em tempo de execução. O restante do código é exatamente o mesmo usado na seção acima.

Recompilamos nosso código modificado usando o comando mostrado abaixo:

$ g++ CommandLine.cpp –o CommandLine

Então, para executar este código, usamos os seguintes argumentos de linha de comando:

$ . / Linha de comando 1 dois 3

Isso significa que passamos três argumentos de linha de comando do tipo inteiro para este programa C++ durante a execução, ou seja, 1, 2 e 3.

A saída deste programa modificado é mostrada na imagem abaixo:

O número total de argumentos retornados por este programa C++ é “4”, ou seja, três argumentos inteiros que passamos + o nome do arquivo objeto. Este programa também imprimiu os elementos da matriz de caracteres “argv” no terminal, ou seja, os argumentos reais do tipo inteiro que foram passados ​​para este programa no momento da execução, junto com o nome do programa.

Executando um programa C++ com argumentos de linha de comando de tipo de caractere:

Agora, queríamos ver se o mesmo programa C++ funciona bem quando tentamos executá-lo passando argumentos de linha de comando de tipo de caractere para ele. Para isso, não precisamos modificá-lo mais. Nós só tivemos que executá-lo com argumentos de linha de comando de tipo de caractere da seguinte forma:

$ . / Linha de Comando a b c d e f

Isso significa que passamos argumentos de linha de comando de seis caracteres para este programa C++ durante sua execução, ou seja, a, b, c, d, e e f.

A saída produzida como resultado da passagem de argumentos de linha de comando de tipo de caractere para o mesmo programa C++ é mostrada abaixo:

O número total de argumentos retornados por este programa C++ é “7”, ou seja, argumentos de seis caracteres que passamos + o nome do arquivo objeto. Este programa também imprimiu os elementos da matriz de caracteres “argv” no terminal, ou seja, os argumentos do tipo de caractere real que foram passados ​​para este programa no momento da execução, junto com o nome do programa.

Conclusão:

Este artigo teve como objetivo a discussão dos dois argumentos de linha de comando, também conhecidos como parâmetros da função “main()”, ou seja, “argc” e “argv”. Falamos sobre o significado desses dois parâmetros, declarando seu uso. Em seguida, compartilhamos alguns exemplos com você que descrevem o uso de “argc” e “argv” em C++ no Ubuntu 20.04. Além disso, também esclarecemos que mesmo sem usar esses parâmetros, a função “main()” poderia funcionar perfeitamente bem. Portanto, depois de ler este artigo, você entenderá o uso de “argc” e “argv” muito claramente em C++.