programme en ligne de commande [C] - Programmation
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
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.
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
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
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
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
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.
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
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...
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 )
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