Uso de parâmetros na linha
de comando
Parâmetros da função main:
Funções úteis
stdlib.h
Converte cadeia de caracteres em um
numero inteiro
int atoi(const char* pt);
ex: int num = atoi(argv[1]);
double atof(const char* pt);
ex: float val = atof(argv[2]);
// programa uso_argc.c
#include <stdio.h>
#include <stdlib.h>
main(int argc, char **argv)
{
/* definicoes locais */
int i,n;
/* comandos */
printf("\n numero de elementos: %d \n", argc);
printf(" nome do programa : %s \n", argv[0]);
for (i=1; i<argc; i++)
printf("\n valor definido pelo usuario nro %d: %s \n", i, argv[i]);
getchar();
getchar();
// n = atoi(argv[4]);
// printf("n = %d", n);
// getchar();
}/*main */
1 - Reescreva o programa abaixo que calcula
o mmc e o mdc, entrando com os valores pela
linha de comando.
#include <stdio.h>
void mdc_mmc(int, int, int*, int*);
main()
{
int n1, n2;
int mdc, mmc;
printf("entre com n1 e n2 \n");
scanf("%d%d", &n1, &n2);
mdc_mmc(n1, n2, &mdc, &mmc);
printf(" n1 = %4d, n2 = %4d, mdc = %4d, mmc = %4d \n", n1, n2, mdc,
mmc);
system(“pause”);
}
Solução
#include <stdlib.h>
void mdc_mmc(int, int, int*, int*);
main(int argc, char **argv)
{
int n1, n2;
int mdc, mmc;
if (argc != 3)
{
printf("\n entre com n1 e n2 na linha de comando \n");
getchar();
exit(1);
}
n1 = atoi(argv[1]);
n2 = atoi(argv[2]);
//continua
continuação
mdc_mmc(n1, n2, &mdc, &mmc);
printf(" n1 = %4d, n2 = %4d, mdc = %4d, mmc = %4d \n", n1, n2,
mdc, mmc);
system(“pause”);
}
2 - Reescreva o programa abaixo que converte
graus Fahrenheit para graus Celsius, passando o
grau Fahrenheit como parâmetro por linha de
comando.
int main()
{
float Fahr, Celsius;
printf(“\n entre com a temperatura em graus Fahrenheit : “);
scanf(“%f”,&Fahr);
Celsius = 5.0/9 *(Fahr - 32);
printf("\n Temperatura em Fahrenheit = %6.1f \n"
" Temperatura em Celsius = %6.1f \n", Fahr, Celsius);
system(“pause”);
return 0;
} /* main */
solução
int main(int argc, char *argv[])
{
float Fahr, Celsius;
if (argc != 2) {
printf("\n \n parametro em Fahreneit> \n");
getchar();
exit(1);
};
Fahr = atof(argv[1]);
Celsius = 5.0/9 *(Fahr - 32);
printf("\n Temperatura em Fahrenheit = %6.1f \n"
" Temperatura em Celsius = %6.1f \n", Fahr, Celsius);
system(“pause”);
} /* main */
Exercicios
3 – Faça um programa que avalie uma
expressao aritmetica do tipo op1 op op2,
passada por linha de comando. As
variaveis op1 e op2 são numeros reais.
Imprima a expressao e o resultado.
Download

linha de comando