exo 4: Passer des arguments
Exercice: écrire une routine qui permet d'afficher la somme de deux entiers passés en paramètres.
On pourra s'inspirer du bout de code suivant qui marche chez moi assez bien ;) ...
Quelles sont mes erreurs (c'est assez facile) ? Comment améliorer?
#include <stdio.h>
int main(int argc, char* argv[])
{
int a,b;
/* s'il manque des arguments on ne peut pas faire la somme */
if (argc < 2)
printf("Utilisation: %s [entier] [entier] \n",argv[0]);
else{
/* conversion de la chaine présente en entier */
sscanf(argv[1],"%d", &a);
/* conversion de la chaine présente en entier */
sscanf(argv[2],"%d", &b);
/* somme */
printf("\n somme: %d+%d=%d \n", a,b,a+b);
}
return 0;
}
int main(int argc, char* argv[])
{
int a,b;
/* s'il manque des arguments on ne peut pas faire la somme */
if (argc < 2)
printf("Utilisation: %s [entier] [entier] \n",argv[0]);
else{
/* conversion de la chaine présente en entier */
sscanf(argv[1],"%d", &a);
/* conversion de la chaine présente en entier */
sscanf(argv[2],"%d", &b);
/* somme */
printf("\n somme: %d+%d=%d \n", a,b,a+b);
}
return 0;
}
parfois over-blog mange les anti-slachs. Si c'est le cas pensez, svp à rajouter les .
ça ce compile comme ça, si le fichier source s'appelle main.c
gcc -Wall -ansi main.c -o somme
On exécute donc
./somme 6 9
Piste: trouvez le "segmentation fault" ! @ demain pour la correction