Este código:
É 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).
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”)!
#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”)!
in.ignore(std::numeric_limits
<std::streamsize>::max(),'\n');
in.get();
??
heheheh :D
i agree