Por: Eduardo Casavella
Em linguagem C podemos passar argumentos através da linha de comando para um programa quando ele inicia.
A função main recebe parâmetros passados via linha de comando como vemos a seguir:
int main( int argc, char *argv[ ] )
Onde:
argc – é um valor inteiro que indica a quantidade de argumentos que foram passados ao chamar o programa.
argv – é um vetor de char que contém os argumentos, um para cada string passada na linha de comando.
argv[0] armazena o nome do programa que foi chamado no prompt, sendo assim, argc é pelo menos igual a 1, pois no mínimo existirá um argumento.
Os argumentos passados por linha de comando devem ser separados por um espaço ou tabulação.
Exemplo: Programa que conta e mostra os argumentos recebidos na linha de comando.
#include <stdio.h> #include <conio.h> int main( int argc, char *argv[ ] ) { int cont; for(cont=0; cont < argc; cont++) printf("%d Parametro: %s\n", cont,argv[cont]); getch(); return 0; }
Obs: Este programa deve ser salvo em um diretório (no meu caso salvei em C:\teste), compilado e para executar devemos usar o prompt de comando. O programa será chamado a executar diretamente pelo prompt. Para tanto chamamos o programa pelo nome e passamos os argumentos. Veja o exemplo da chamada de execução na primeira linha da figura.
Tela de execução – Recebendo parâmetros do prompt
Exemplo:
#include <stdio.h> #include <conio.h> int main( int argc, char *argv[ ] ) { int Resultado, valorA=0, valorB=0; printf("\nMultiplicando valores passados na linha de comando\n"); //atoi converte de alfanumérico para inteiro valorA = atoi(argv[1]); valorB = atoi(argv[2]); Resultado = valorA * valorB; printf("\n%d X %d = %d\n",valorA,valorB,Resultado); getch(); return 0; }
Tela de execução – Multiplicando valores passados pelo prompt
Explicação do código
Os argumentos passados via linha de comando são armazenados em strings, logo é necessário realizar uma conversão usando a função atoi () para transformar os valores a serem multiplicados em números inteiros.
atoi(argv[1]) converte o argumento da posição [1] do vetor argv[] em inteiro.
Depois de converter os argumentos em inteiros efetuamos a multiplicação normalmente.
Até a próxima!
3 respostas a Argumentos em linha de comando