Bonjour à tous,
J'essaie depuis un petit moment de passer une liste de paramètres à un programme, et pour ce faire, j'utilise fscanf entre autre.
Seulement je ne sais pas quelle est la meilleure façon de faire ce que je veux faire, et la méthode que j'utilise a quelques soucis.
Je souhaite récupérer des données dans un fichiers qui la tête suivante :
où les i sont des entiers et les f des réels doubles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #parametres1_2_3 i1 f2 f3 #parametres4_5_6 i4 f5 f6 #parametres7_8_9 i7 f8 f9
j'utilise un code de la forme
Comme vous pouvez le voir, j'essaie de mettre la ligne de "commentaire" dans un tableau dum[10] par exemple, puis je lis avec un fscanf le contenu de la ligne suivante qui contient les données qui m'intéressent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 fgets(dum,30,input); fscanf(input, "%d %lf %lf ", &i1,&f2,&f3); fgets(dum,30,input); fscanf(input, "%d %lf %lf ", &i4,&f5,&f6); ...
Le problème : seul le premier fscanf fonctionne, tout ce qui vient après ne donne rien du tout, comme dans l'exemple suivant :
i1 5.000000, f2 10.000000, f3 15
i4 0.000000, f5 0.000000, f6 0
Pour être plus précis, un printf("%s",dum) juste après la deuxième ligne de code (donc après le fscanf qui marche) donne #parametres1_2_3 juste après la deuxième ligne de code, et les variables i1 f2 et f3 sont comme il faut, seulement après plus rien de marche, quelque soit le type de variables.
J'ajoute que j'ai essayé un fscanf(input,"%s",&dum) à la place des fgets, et j'ai également d'utiliser un tableau différent pour chaque ligne, donc dum1, dum2 ... mais rien n'y fait !
Seuls le premier fscanf(input, "%d %lf %lf ", &i1,&f2,&f3) fonctionne, et i4 f5 et f6 donne n'importe quoi!
Comme ça fait 4 heures que j'essaie différentes choses, et que je ne trouve rien sur internet, je demande officiellement de l'aide pour la première fois de ma vie dans un forum(jusqu'à présent j'avais toujours trouvé ce que je cherchais et puis là rien du tout
).
Je vous remercie d'avance de votre aide !
Partager