Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1656 connectés 

  FORUM HardWare.fr
  Programmation

  [C] programme en ligne de commande

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] programme en ligne de commande

n°86849
com21
real men don't click
Posté le 07-01-2002 à 20:48:25  profilanswer
 

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
mood
Publicité
Posté le 07-01-2002 à 20:48:25  profilanswer
 

n°86857
Gousy
Posté le 07-01-2002 à 21:05:07  profilanswer
 

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

n°86858
Gounok
Faux traître
Posté le 07-01-2002 à 21:07:26  profilanswer
 

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.

n°86861
sixties
Posté le 07-01-2002 à 21:12:27  profilanswer
 

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

n°86863
benou
Posté le 07-01-2002 à 21:15:00  profilanswer
 

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

n°86872
deathsharp
Posté le 07-01-2002 à 21:34:35  profilanswer
 

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.
n°86896
Kristoph
Posté le 07-01-2002 à 23:48:50  profilanswer
 

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 :)

n°86902
com21
real men don't click
Posté le 08-01-2002 à 00:00:20  profilanswer
 

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
n°86905
youdontcar​e
Posté le 08-01-2002 à 00:04:52  profilanswer
 

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.

n°86956
petoulachi
A fortiori, brigadier chef
Posté le 08-01-2002 à 09:57:43  profilanswer
 

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

mood
Publicité
Posté le 08-01-2002 à 09:57:43  profilanswer
 

n°87106
com21
real men don't click
Posté le 08-01-2002 à 17:25:41  profilanswer
 

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
n°87241
benou
Posté le 09-01-2002 à 00:46:55  profilanswer
 

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 :))


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C] programme en ligne de commande

 

Sujets relatifs
[DELPHI] Créer un racourci dans le menu démarer depuis un programmeCpp Builder : faire un programme sans dll.
question en c: pour arreter le programme.. on fait coment?[Java] executer un telnet (login) et executer une commande
[VB6] lancement de programme depuis un bouton ; 2 kestions simples[sécurité ssl blabla] comment faire un site de vente en ligne?
[java] lancer l'execution d'un programme[VB] Supprimer une ligne dans un fichier ?
transporter un programme java sur palmProgramme C aide pour un debutant !!!
Plus de sujets relatifs à : [C] programme en ligne de commande


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR