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

  FORUM HardWare.fr
  Programmation

  help en c

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

help en c

n°49063
lamasu
Posté le 26-07-2001 à 14:07:47  profilanswer
 

j'ai fait un prog qui est sensé prendre 2 parametres et les multiplier pour stocker le resultat dans un fichier.
 
Mon prob : je n'arrive pas à prendre correctement des floats... j'ai un resultat bidon ! si quelqu'un peut me trouver l'erreur
 
#include <stdio.h>
float resultat;
FILE *outputfile="d:\text.txt";
 
main (argc, argv)
 int argc;
 float * argv[];
{
  if (argc != 3)
    fprintf (stderr, "SYNTAX : %s [value1] [value2]\n", argv[0]);
  else
  {  
    resultat=(*argv[1]) * (*argv[2]); //c'est surement ici ke ca va pas
    printf("resultat de %f * %f = %f",*argv[1],*argv[2],resultat);
    outputfile = fopen("text.txt","w" );
    fprintf(outputfile,"%s %f\n","set var",resultat);
    fclose(outputfile);
  }
}

mood
Publicité
Posté le 26-07-2001 à 14:07:47  profilanswer
 

n°49068
Carbon_14
Posté le 26-07-2001 à 14:25:36  profilanswer
 

Dans un de mes vieux programmes, on a un  
char *argv[];
et non un float *argv[];
 
Si on trouve dans argv[1] le premier float, et dans [2] le second, on peut passer par la fonction
atof() qui retourne le float contenu dans la chaîne.
Flot1 = atof(argv[1]);
Flot2 = atof(argv[2]);
 
Ai pas essayé pour voir si ça résoud le pb.

n°49069
El_gringo
Posté le 26-07-2001 à 14:28:41  profilanswer
 

Mais, sans essayer, je confirme...en tout cas, c sur que ça pouvais pas marcher !
argv est fait pour pouvoir récupérer n'importe quoi...il prend donc tt ss forme d'une chaine de char...il ne reste après plus qu'a les convertir en ce qu'on veux: des floats pour toi, avec la fonction que t'as indiqué carbon14 : atof.

 

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

n°49071
lamasu
Posté le 26-07-2001 à 14:39:28  profilanswer
 

on dirait que atof ne fait pas son boulot correctement !
j'ai une conversion qui ne correspond pas !

n°49073
Carbon_14
Posté le 26-07-2001 à 14:44:27  profilanswer
 

Il y a #include <math.h> déclaré au début ?
 
atof renvoie un double, je pense pas que cela gène !
Essayer F1 = (float)atof() ?
 
Les valeurs sont biens "entrées" sur la ligne de commande sans espace ?

n°49075
lamasu
Posté le 26-07-2001 à 14:50:17  profilanswer
 

non ! ca marche toujours pas, j'ai mis math.h c'est toujours au moment de la conversion que ca deconne.
un probleme avec atof ?

n°49076
lamasu
Posté le 26-07-2001 à 15:00:36  profilanswer
 

ca y est j'ai reussit merci !
je me suis aussi aider de cette page http://www.cplusplus.com/ref/cstdlib/atof.html

n°49077
youdontcar​e
Posté le 26-07-2001 à 15:02:12  profilanswer
 

lamasu a écrit a écrit :

    resultat=(*argv[1]) * (*argv[2]); //c'est surement ici ke ca va pas
    printf("resultat de %f * %f = %f",*argv[1],*argv


à quoi servent les '*' devant tes argv[] ?
 
resultat = atof(argv[1]) * atof(argv[2]), ça ne marche pas ?

n°49079
Carbon_14
Posté le 26-07-2001 à 15:05:25  profilanswer
 

?
j'ai regardé mon prog, math.h n'y était pas (! ?).
 
Avec char *c1, *c2;
 
c1 = argv[1];
c2 = argv[2];
 
float Float1 = atof(c1); // idiot ?
 
En remplaçant argv[1] par la chaîne littérale voulue, atof() fonctionne ? Si oui, c'est argv[] qui ne lui plaît pas.  :fou:

n°49081
lamasu
Posté le 26-07-2001 à 15:09:50  profilanswer
 

voici le prog corrigé à la fin pour ceux qui sont intrigués !
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
double resultat,a,b;
FILE *outputfile="d:\text.txt";
 
main (argc, argv)
 int argc;
 char *argv[];
{
  if (argc != 3)
    fprintf (stderr, "SYNTAX : %s [value1] [value2] \n", argv[0]);
  else
  {  
    a = atof (argv[1]);
    b = atof (argv[2]);
 
    resultat=a * b ;
    printf("res de %f fois %f egal %f",a,b,resultat);
    printf("arg %s %s",argv[1],argv[2]);
    outputfile = fopen("text.txt","w" );
    fprintf(outputfile,"%s %f\n","set var",resultat);
    fclose(outputfile);
  }
}
 
je pense qu'il n'y a pas besoin de math.h

mood
Publicité
Posté le 26-07-2001 à 15:09:50  profilanswer
 

n°49509
LetoII
Le dormeur doit se réveiller
Posté le 28-07-2001 à 23:36:28  profilanswer
 

juste une question pour embetter ça te sert à quoi ça:
 
FILE *outputfile="d:\text.txt";
 
je doit dire que je suis relativement perplex, mais bon


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

  help en c

 

Sujets relatifs
je cherche une bombe en java !!!! help neededHelp!!!!!!!!!!! svp j'ai besoin d'aide
SVP AIDEZ-MOI !!! ASP / PHP ??? HELP !C'est urgent help !!!!!!!!!!!
[Javascript] Need help ![php] je comprend pas ce qu'il me dit, help plzzzzzzzzz
Prog C sous 16bits --> Help me... (quelle merde !)[Win32] Status d'imprimante .... HELP ME !
Problème avec unJavaScript qui marche pas !.... Help please ....HELP HELP
Plus de sujets relatifs à : help en c


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