Para exemplificar melhor o uso de linha de comando utilizando a linguagem C, vamos criar uma calculadora
aritmética básica de inteiros. Vamos utilizar o exemplo criado em
C: Módulo e adaptá-lo para utilização
de argumentos sejam passados pela linha de comando.
A sintaxe será bem simples; sendo dois argumentos representando dois números como operandos e
um último argumento que informa qual a operação desejamos realizar.
Sintaxe: linha de comando
main.exe operando1 operando2 operacao
Linha de comando
main.exe 4 2 +
main.exe 4 2 x
main.exe 4 2 /
main.exe 4 2 -
Exemplo 1 : Parte 1 - Operações
//main.c
#include <stdio.h>
#include <stdlib.h> // para conversão de tipos
int adicao(int a, int b)
{
return a + b;
}
int subtracao(int a, int b)
{
return a - b;
}
int multiplicacao(int a, int b)
{
return a * b;
}
int divisao(int a, int b)
{
return a / b;
}
Na parte 1 acima, no topo de nossso arquivo main.c, criamos nossas funções que irão realizar
os operações aritméticas básicas de nossa calculadora. Validações e outras tratamentos foram omitidos
para melhor compreensão do exemplo.
Exemplo 1 : Parte 2 - main
//main.c
void main( int argc, char *argv[] )
{
if(argc == 4 )
{
int parametro1 = atoi(argv[1]); //conversão de string p/ inteiro
int parametro2 = atoi(argv[2]);
char operacao = *argv[3];
int resultado = 0;
//necessário verifica se operação é válida antes
switch(operacao){
case '+':
resultado = adicao(parametro1,parametro2);
break;
case 'x':
resultado = multiplicacao(parametro1,parametro2);
break;
case '/':
resultado = divisao(parametro1,parametro2);
break;
case '-':
resultado = subtracao(parametro1,parametro2);
break;
}
printf("argumento: %d %d\n", parametro1,parametro2);
printf("operação: %d %c %d \n", parametro1,operacao,parametro2);
printf("Resultado: %d\n", resultado);
}
else
{
printf("numero de argumento errados.\n");
}
}
Na parte 2 acima, dentro de nossa função main, temos o tratamento básico da linha de comando,
conversão de operandos e a execução das operações.
Executando nossa calculadoras utilizando a entrada abaixo, temos:
Entrada
main.exe 1 2 +
Saída
3
Algumas funções da biblioteca <stdlib.h> utilizadas no exemplo acima foram estudados com mais detalhes
em C String: Conversão, sendo a leitura recomendada.