[C] programme en ligne de commande

programme en ligne de commande [C] - Programmation

Marsh Posté le 07-01-2002 à 20:48:25    

le but est de programmer une calculette Euro en utilisant les fonctions de ligne de commande :
Ex :
>./Euro 1
>6.56
 
voici le code source :
 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
 
main(int argc, char *argv[])
{    
  double a,b;
  if (argc != 2)
    {
     printf(" Nombre de parametres errone\n" );
     exit(1);
    }
 
  a = atof(argv[1]);
  b = (a * 6.5597);
  printf("cela fait %f francs\n",b);
 
  return 0;
 
}
 
 
et a la compilation j'ai ceci
 
$ gcc -c -Wall euro euro.c
gcc: euro: Aucun fichier ou r?pertoire de ce type
euro.c:7: warning: return type defaults to `int'
 
???  j'arrive pas a comprendre ce que je dois changer
 
par ailleur on doit afficher que deux chiffres apres la virgule  
j'ai juste a mettre %.2f dans mon printf
mais je dois aussi gerer les arrondi supérieur et inférieur mais comment ?
 
 
merci de votre aide :)

 

[edtdd]--Message édité par com21--[/edtdd]


---------------
Cherche geekette | Traquez vos billets d'€ | Don du sang | Don de moelle osseuse
Reply

Marsh Posté le 07-01-2002 à 20:48:25   

Reply

Marsh Posté le 07-01-2002 à 21:05:07    

Je comprends pas a koi sert ta variable argc??
J ai essaye ton code source moi j ai aucune erreur

Reply

Marsh Posté le 07-01-2002 à 21:07:26    

La variable argc renvoie le nombre de paramètre de la ligne de commande, commande inclue. En l'occurence, il faut mettre 2 arguments, la commande et le montant : si y en a plus ou moins de 2, c'est que l'utilisateur s'en est mal servi d'où le code d'erreur.

Reply

Marsh Posté le 07-01-2002 à 21:12:27    

int main(int argc, char *argv[])

Reply

Marsh Posté le 07-01-2002 à 21:15:00    

ben ouais : tu fais un return 0 sans déclarer de valeur de retour pour ta fonction main

Reply

Marsh Posté le 07-01-2002 à 21:34:35    

la valeur par defaut de main c int si tu en met pas ;)  
ca fait un warning: c vrai que c quand meme mieux de mettre int


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 07-01-2002 à 23:48:50    

Pour le warning, il faut que tu declare main comme retournant int
 
int main(int argc, char *argv[])
 
pour l'autre erreur de gcc, c'est ta ligne de command qui est incorrecte :
 
gcc -c -Wall -o euro -c euro.c
 
tu a oublie le -o avant euro
 
Sinon, tout le reste est bon mais pour les arrondis il va falloir galèrer un peu plus avec les fonction de math.h je pense. Si tu a de la chance, il y a une fonction d'arrondi qui fait ca automatiquement comme il faut :)

Reply

Marsh Posté le 08-01-2002 à 00:00:20    

merci pour vos reponses
je suis tres etourdi  
et ça m'emmerde de galerer pour un int oublier.....
 
bon je vais faire cette fonction arrondi ça sera chiant a faire mais pas impossible :)


---------------
Cherche geekette | Traquez vos billets d'€ | Don du sang | Don de moelle osseuse
Reply

Marsh Posté le 08-01-2002 à 00:04:52    

pour l'arrondi, tu peux te servir de floor (plancher) et ceil (plafond).
 
floor(4.5f) renvoie 4
 
ceil(4.5f) renvoie 5
 
donc si tu veux les arrondis supérieurs / inférieurs, il suffit de multiplier ton nombre par 100, le passer par floor ou ceil, puis le rediviser par 100.

Reply

Marsh Posté le 08-01-2002 à 09:57:43    

oui sinon pour la ligne de commande tu fais
gcc -Wall euro.c -o euro  et voila
 
Et puis fais un perror("Nbre de param erroné\n" )  c plus propre

Reply

Marsh Posté le 08-01-2002 à 09:57:43   

Reply

Marsh Posté le 08-01-2002 à 17:25:41    

youdontcare a écrit a écrit :

pour l'arrondi, tu peux te servir de floor (plancher) et ceil (plafond).
 
floor(4.5f) renvoie 4
 
ceil(4.5f) renvoie 5
 
donc si tu veux les arrondis supérieurs / inférieurs, il suffit de multiplier ton nombre par 100, le passer par floor ou ceil, puis le rediviser par 100.  




 
il faut que les arrondi soit automatique....
4.123 donne 4.12
4.126 donne 4.13  
 
je vais cherche une fonction qui puisse faire ça...


---------------
Cherche geekette | Traquez vos billets d'€ | Don du sang | Don de moelle osseuse
Reply

Marsh Posté le 09-01-2002 à 00:46:55    

cherche pas, y a une super méthode pour ca :  
 
pour fair un arrondi de x avec la méthode floor, y a qu'à faire ca :
floor(x*100 + 0.5) / 100  
 
et ca fait l'arrondit ! (merci à mon prof d'algo de 1ere année d'info :))

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed