Passando parâmetros para um programa

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Passando parâmetros para um programa

Mensagem por Evandro Abu Kamel em Dom 12 Set 2010, 20:50

Olá pessoal,

Como muitos já devem ter visto no enunciado do trabalho, alguns exercícios pedem para que os parâmetros de execução de um programa devem ser passados da seguinte forma, considerando que sejam executados num sistema Linux:

Código:
$ ./calc.exe 1 + 2
1 + 2 = 3

Ou seja, os parâmetros devem vir logo depois da chamada do nome o arquivo executável, tudo de uma só vez.
Para isso, a linguagem C oferece dois parâmetros do método main() que possibilitam isso.
Veja o código de exemplo abaixo:

Código:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
    /*
    * Codigo do programa
    */

    return 0;
}

Vejam os parâmetros "int argc" e "char* argv[]", eles possuem o seguinte significado:

  • argc: Armazena o número de parâmetros, do tipo inteiro (óbvio), que foram passados, separados por espaço. Contando a partir do 0, e este corresponde à chamada de execução do programa (ex: ./calc.exe).
  • argv[]: É um simples vetor que armazena os valores dos parâmetros, no formato de texto (char*).


Para usá-los, existem uns comandos bastante úteis, que convertem os valores dos parâmetros do tipo char para algum tipo desejado, como int, float, double.
Continuando o exemplo anterior, da calculadora básica:

Código:
int val1 = atoi(argv[1]); // Converte o argumento de valor "1" para int
float val2 = atof(argv[3]); // Converte o argumento de valor "2" para double
// O argumento argv[2] de valor "+" que pode ser verificado em um switch() para se realizar as operações

Esses comandos estão contidos na biblioteca stdlib.h

Espero que tenha ajudado.
Até a próxima.

_________________
"Faça as coisas o mais simples que você puder,
porém, não as mais simples." Albert Einstein

avatar
Evandro Abu Kamel
Administrador
Administrador

Número de Mensagens : 222
Idade : 28
Data de inscrição : 11/03/2009

Ver perfil do usuário http://forum.clubedosistema.com

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum