Bonsoir,
Je souhaite au tout début de mon programme principal, lire un fichier contenant des données qui seront utilisées plus loin dans le programme. J'aimerai que le contenu de ce fichier donnees.txt soit organisé de la manière suivante :
rayon, gravite, densite : sont des variables qui seront utilisées dans le code avec donc les affectations correspondantes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 rayon=0.25 gravite=9.81 densite=1200
il s'agit bien évidemment d'une simplification, en réalité je dispose au jour d'aujourd'hui d'un peu plus de 50 paramètres d'entrée.
Le programme m'affiche bien à l'écran le contenu de mon fichier donnees.txt, mais le calcul de ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 #include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> #define TAILLE_MAX 1000 main() { FILE* fichier = NULL; char chaine[TAILLE_MAX] = ""; double pi,rayon,densite,poids; poids=0.0; fichier = fopen("donnees.txt", "r"); if (fichier != NULL) { while (fgets(chaine, TAILLE_MAX, fichier) != NULL) { printf("%s", chaine); } /* ici je souhaiterai par exemple calculer le poids (pour une sphere par exemple) */ poids=(4.0/3.0)*pi*(rayon*rayon*rayon)*densite ; printf("poids=%e \n",poids); fclose(fichier); } return 0; }
donne n'importe quoi, autrement dit il ne lit pas les bonnes données. Je suis conscient que le programme me renvoi simplement ce que je lui demande.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 poids=(4.0/3.0)*pi*(rayon*rayon*rayon)*densite ;
Pouvez-vous me venir en aide?
En revanche, quand je mets mes données dans un fichier donnees.h que j'inclue dans le préambule de mon code, ça marche parfaitement bien, le problème est que si je modifie simplement une donnée, je dois recompiler...mais c'est une solution qui marche.
Troisièmement, Si j'écris mon fichier de données de la manière suivante :
et que dans le main je demande à rentrer successivement ces paramètres au clavier (enfin à l'aide d'un fichier de commande.bat contenant la ligne de commande suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 0.25 9.81 1200
et en utilisant scanf ça marche aussi très bien, l'inconvénient c'est que si j'ai une longue liste des paramètres, on se perd un peu en l'absence du libellé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 main.exe < donnees.txt
C'est pour cette raison que je tiens à utiliser la première méthode mais qui ne marche pas.
Merci d'avance pour votre aide.
Partager