quarta-feira, 6 de agosto de 2008

Algumas pessoas PRECISAM fazer programas interativos

Este código:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv){
int i;
double total =0;

for(i=1;i < argc;i++){
total = total + atof(argv[i]);
}

printf("A soma dos %d parametros eh %f\n",(argc - 1),total);

return 0;
}


É limpo, prático e scriptável. Não preciso fazer pergunta nenhuma nem tratar nada que o usuario informe: no maximo posso ver o número de parâmetros e reclamar. Basta saber como funciona o laço for e saber que argc é o número de parâmetros que eu passei para o programa e argv é um vetor de strings (que, em C puro, são vetores de chars) onde cada elemento é um parâmetro. O primeiro é sempre o nome do programa (a posição 0, que eu pulei).

$ gcc -Wall soma.c
$ ./a.out 1 2 3 4 5
A soma dos 5 parametros eh 15.000000


Eu compilo e pelo para que todos os warnings possiveis sejam mostrados. Novamente não tive nenhum problema e o código funciona bem. Nem um flush de stdin foi preciso. Se eu colocar uma palavra no meio, como abóbora, será ignorado.

Não é mais facil assim do que fazer milhões de menus? Nem precisa de system("pause") system("cls")!

2 comentários:

Tiago "PacMan" Peczenyj disse...

Que fique registrado: system("pause") é um convite a morte.

Unknown disse...

hmmm...
in.ignore(std::numeric_limits
<std::streamsize>::max(),'\n');
in.get();
??
heheheh :D
i agree