A linguagem C nos permite manipular os dados informados por um usuário de nossos
programas através da linha de comando.
Por exemplo, um programa para realizar operações aritméticas básicas pode receber
argumentos como abaixo:
Sintaxe
nome_executavel.exe argumento1 argumento2 <argumentoN>
Exemplo 1
calculadora.exe 1 2 +
Onde:
calculadora.exe: nome do executável do seu programa após a compilação
1, 2 +: qualquer argumento passado pela linha de comando separados por espaço
A passagem desses argumentos é feita por intermédio na função principal main.
Essa função possui os dois parâmetros: argc e *argv[].
Exemplo 2
int main(int argc, char *argv[])
Onde:
argc: número de argumentos passados na linha de comando
*argv[]: vetor de string contendo a lista de argumentos informados na linha de comando.
Com a utilização desses parâmetros acima, quando utilizamos a linha de comando
exemplificada anteriormente, podemos ter acesso aos argumentos argumento1,
argumento2 e argumentoN.
Exemplo 3
#include <stdio.h>
int main( int argc, char *argv[] )
{
int i;
printf("argumentos: %d\n", argc);
for(i=0;i < argc; i++)
{
printf("%s \n" , argv[i]);
}
}
Entrada
main.exe 1 2 +
Saída
main.exe
1
2
+
Os nomes dos parâmetros são argc e argv utilizados por padrão, mas podem ser
alterados sem problemas, contanto que os tipos de dados sejam mantidos na
mesma ordem:
Exemplo 4
#include <stdio.h>
int main( int cnt, char *strings[] )
{
int i;
printf("argumentos: %d\n", cnt);
for(i=0;i < cnt; i++)
{
printf("%s \n" , strings[i]);
}
}
Entrada
main.exe 1 2 +
Saída
main.exe
1
2
+
Os comandos if, else, switch e outros devem ser
utilizados para trabalhar com a linhas de comando de acordo com as necessidades
de nossos programas.
De acordo com o tipo de argumento informado, será necessário realizar um tratamento
específico como validação, conversão de tipo entre outros.